zoukankan      html  css  js  c++  java
  • sorl6.0+jetty+mysql

    sorl6.0+jetty+mysql搭建solr服务

    1.下载solr

     

      官网:http://lucene.apache.org/solr/

     

    v2.目录结构如下

     

     

    v3.启动solr(默认使用jetty部署)

     

      在path路径下将 bin文件夹对应的目录加入,然后输入 solr start(或者 solr start -p port,指定端口启动)。在浏览器中访问如下:

     

     

     

      当然,还可以启动其他样例的服务,在example目录下有一个READEME.txt,如果感兴趣请看一下。命令格式如下:

     

    复制代码
    Solr example
    ------------
    
    This directory contains Solr examples. Each example is contained in a 
    separate directory. To run a specific example, do:
    
      bin/solr -e <EXAMPLE> where <EXAMPLE> is one of:
      
        cloud        : SolrCloud example
        dih          : Data Import Handler (rdbms, mail, rss, tika)
        schemaless   : Schema-less example (schema is inferred from data during indexing)
        techproducts : Kitchen sink example providing comprehensive examples of Solr features
    复制代码

     

    v4.Individual SolrCore

     

      在server/solr目录下,有一个README.txt的文件,其中说明了如何建立solr core。最简单的建立是直接复制solr中为我们提供好的例子,打开server/solr/configsets目录会发现里面已经有三个例子,因为我们是要从数据库导入数据,所以复制 “data_driven_schema_configs” 这个例子并改名为 “myCollections”。

     

     

     

    v5.导入需要的jar包

     

      为了导入数据和链接mysql,我们还需要导入两个重要的jar包。由于mysql的jar包并没有在项目中,我是复制了一份放到了dist目录下面了。另外两个需要的jar包就是dist目录下带有“dataimport”标识的jar包。

     

      然后打开myCollections/conf/solrconfig.xml,引用上面提到的jar包,如下。

     

     

    v6.建立数据库

     

     

      建立好之后,随便写入一点儿数据。

     

    v7.添加requestHandler 

     

      继续修改myCollections/conf/solrconfig.xml,搜索 <requestHandler name="/select" class="solr.SearchHandler"> ,然后在该行之上添加如下代码。

     

      <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">  
          <lst name="defaults">  
             <str name="config">data-config.xml</str>  
          </lst>  
     </requestHandler>  

     

     

    v8.建立连接配置文件

     

      在myCollections/conf目录下新建data-config.xml, 内容如下。

     

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>  
    <dataConfig>  
        <dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/solrdata" user="root" password="123456" batchSize="-1" />  
      <document>  
            <entity name="goods" pk="id"  dataSource="source1"   
                    query="select * from  goods"  
                    deltaImportQuery="select * from goods where id='${dih.delta.id}'"  
                    deltaQuery="select id from goods where updateTime> '${dataimporter.last_index_time}'">  
      
             <field column="id" name="id"/>  
             <field column="name" name="name"/>  
               <field column="number" name="number"/>  
               <field column="updateTime" name="updateTime"/>  
         </entity>  
      </document>  
    </dataConfig>  
    复制代码

     

     说明:

     

      dataSource是数据库数据源。Entity就是一张表对应的实体,pk是主键,query是查询语句。Field对应一个字段,column是数据库里的column名,后面的name属性对应着Solr的Filed的名字。其中solrdata是数据库名,goods是表名。

     

      其中deltaQuery是增量索引,原理是从数据库中根据deltaQuery指定的SQL语句查询出所有需要增量导入的数据的ID号。然后根据deltaImportQuery指定的SQL语句返回所有这些ID的数据,即为这次增量导入所要处理的数据。核心思想是:通过内置变量“${dih.delta.id}”和 “${dataimporter.last_index_time}”来记录本次要索引的id和最近一次索引的时间。

     

    v9.managed-schema配置field信息

     

      搜索 <field name= ,添加关联数据库表Column的信息。

     

     

      注意:默认的 filed 不要删除哦!

     

    v10.添加我们刚刚建立的core

     

      (1).点击Core Admin,配置我们建立的solr Core的信息,如下所示。

     

     

      (2).点击 Add Core,如下所示。

     

     

      (3).测试索引是否成功

     

                                       

     

    索引成功

     

      (4).监测查询成功

     

     

    查询成功

     

    v11.通过代码调用solr服务

     

      简单建立一个java项目,依赖上dist目录下的solr-solrj-6.0.0.jar。

     

      测试代码如下。

     

     View Code

     

      对应的实体类。

     

     View Code

     

      每测试一次,可以在浏览器中通过query方式查看测试结果是否正确。

     

    v12.参考资料

     

      Solr之搭建Solr6.0服务并从Mysql上导入数据

     

       Solr参考指南  可以下载

  • 相关阅读:
    HBase with MapReduce (MultiTable Read)
    HBase with MapReduce (SummaryToFile)
    HBase with MapReduce (Summary)
    HBase with MapReduce (Read and Write)
    HBase with MapReduce (Only Read)
    Hbase中的BloomFilter(布隆过滤器)
    HBase的快照技术
    How To Use Hbase Bulk Loading
    Cloudera-Manager修改集群的IP
    Java中的HashSet和TreeSet
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5649038.html
Copyright © 2011-2022 走看看