`
anyhuayong
  • 浏览: 2888 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

solr环境配置、中文分词、数据库

阅读更多
一、配置solr环境

1、  下载solr  http://www.apache.org/dyn/closer.cgi/lucene/solr/

此处用的是3.5 解压到D盘D:/solr/apache-solr-3.5.0

2、修改tomcat conf/server.xml

  <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"URIEncoding="UTF-8" />

添加编码的配置 URIEncoding="UTF-8" (如不添加,中文检索时因为乱码搜索不到)

3、  配置solr

Tomcat  conf/Catalina/localhost下添加solr.xml

内容:

<Context docBase="D:/solr/apache-solr-3.5.0/dist/apache-solr-3.5.0.war" debug="0" crossContext="true" >

<Environment name="solr/home" type="java.lang.String" value="D:/solr/apache-solr-3.5.0/example/solr" override="true" />

</Context>

4、 启动tomcat  输入http://localhost:8080/solr/  出现欢迎界面表示成功





二、中文分词配置

1、  下载分词器: http://code.google.com/p/mmseg4j/

2、下载词库:http://code.google.com/p/mmseg4j/downloads/detail?name=data.zip&can=2&q

3、将解压后的mmseg4j-1.8.5目录下的mmseg4j-all-1.8.5.jar拷贝到Tomcat的webapps/solr/WEB-INF/lib目录下。

4、添加词库:在D:/solr/apache-solr-3.5.0/example/solr目录下新建dic文件夹,将解压后的data目录下的words.dic拷贝到D:/solr/apache-solr-3.5.0/example/solr/dic目录下。

5、  更改schema.xml(D:/solr/apache-solr-3.5.0/example/solr/conf/)文件,使分词器起到作用。

在schema.xml的<types>、<fields>和部分新增如下配置:

注:dicPath=" "是你的词库路径。

    <!–mmseg4j field types–>

       <fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100" >

                  <analyzer>

                     <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="D:/solr/apache-solr-3.5.0/example/solr/dic"/>

                     <filter class="solr.LowerCaseFilterFactory"/>

           </analyzer>

       </fieldType>



     <fieldType name="textMaxWord" class="solr.TextField" positionIncrementGap="100" >

        <analyzer>

            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="D:/solr/apache-solr-3.5.0/example/solr/dic"/>

            <filter class="solr.LowerCaseFilterFactory"/>

        </analyzer>

     </fieldType>

   

     <fieldType name="textSimple" class="solr.TextField" positionIncrementGap="100" >

       <analyzer>

           <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="D:/solr/apache-solr-3.5.0/example/solr/dic"/>

           <filter class="solr.LowerCaseFilterFactory"/>

       </analyzer>

     </fieldType>



   <!– mmseg4j field –>

   <field name="simple" type="textSimple" indexed="true" stored="true" multiValued="true"/>

   <field name="complex" type="textComplex" indexed="true" stored="true" multiValued="true"/>

   <field name="text_mmseg4j" type="textMaxWord" indexed="true" stored="true" multiValued="true"/>



  <!– mmseg4j copyField –>

   <copyField source="simple" dest="text_mmseg4j"/>

   <copyField source="complex" dest="text_mmseg4j"/>



重启你的tomcat。

访问:http://localhost:8080/solr/admin/analysis.jsp可以看 mmseg4j 的分词效果。在 Field 的下拉菜单选择 name,然后在应用输入 complex。分词的结果,如下图:



好了,可以运行起来了,那就添加个文档试下,在 解压后的D:/solr/apache-solr-3.5.0/example/exampledocs目录下创建 mmseg4j-solr-demo-doc.xml 文档,内容如下:

  <add>

      <doc>

          <field name="id">1</field>

          <field name="text">高效、灵活的缓存功能,垂直搜索功能。</field>

      </doc>

      <doc>

          <field name="id">2</field>

          <field name="text"> Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。</field>

      </doc>

      <doc>

          <field name="id">3</field>

          <field name="text"> 独立的企业级搜索应用服务器</field>

      </doc>

  </add>

注意:使用的字段name必须在solr的配置文件schem.xml增加

       下(id、title)一样

然后在 cmd 下运行 post.jar,如下:

D:\solr\apache-solr-3.5.0\example\exampledocs>java -Durl=http://localhost:8080/

solr/update -Dcommit=yes -jar post.jar mmseg4j-solr-demo-doc.xml



注意:mmseg4j-solr-demo-doc.xml 要是 UTF-8 格式,不然提交后会乱码。还有在查询中文时需要把tomcat设置成URIEncoding="UTF-8";

查看是否有数据,访问:http://localhost:8080/solr/admin/ 在Query String: 中输入“高性能”

显示如下图所示:





三、Solr将数据库做成索引数据源(以mysql为例)

1、  在solrconfig.xml中配置导入数据功能(D:\solr\apache-solr-3.5.0\example\solr\conf下)

     <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">

     <lst name="defaults">

       <str name="config">D:\solr\apache-solr-3.5.0\example\solr\conf\db\db-data-config.xml</str>

     </lst>

  </requestHandler>

2、  添加一个数据源db-data-config.xml (D:\solr\apache-solr-3.5.0\example\solr\conf\db下)

    <dataConfig>

         <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/solr" user="root" password="root"/>

             <document name="messages">

               <entity name="user" transformer="ClobTransformer" query="select * from t_user">

             <field column="id" name="id" />

                      <field column="name" name="name"/>

                      <field column="title" name="title"/>

         </entity>

     </document>

</dataConfig>

CREATE TABLE t_user 



   id         VARCHAR(255) PRIMARY KEY, 

   name       VARCHAR(10) NOT NULL, 

   title        VARCHAR(10)

);

3、放入mysql驱动包  (Tomcat的webapps/solr/WEB-INF/lib目录下)

4、创建索引

   http://localhost:8080/solr/dataimport?command=full-import

5、  查看是否成功,访问:http://localhost:8080/solr/admin/ 在Query String: 中输入“sunshan”、“孙闪”

如下图:





注:保证与数据库连接正确




四、Solr多核(MultiCore)配置

1、  拷贝multicore(D:\solr\apache-solr-3.5.0\example下)下的core0、core1、exampledocs到solr(D:\solr\apache-solr-3.5.0\example\solr下)目录下

2、  更改solr.xml(D:\solr\apache-solr-3.5.0\example\solr下)配置

添加:

<core name="core0" instanceDir="core0" dataDir="D:/solr/apache-solr-3.5.0/example/solr/core0/data"/>

<core name="core1" instanceDir="core1" dataDir="D:/solr/apache-solr-3.5.0/example/solr/core1/data"/>

配置后:

   <cores adminPath="/admin/cores">

    <core name="collection1" instanceDir="." />

<core name="core0" instanceDir="core0" dataDir="D:/solr/apache-solr-3.5.0/example/solr/core0/data"/>

    <core name="core1" instanceDir="core1" dataDir="D:/solr/apache-solr-3.5.0/example/solr/core1/data"/>

  </cores>

3、  启动tomcat 访问:

http://localhost:8080/solr/







五、多核数据库索引:

同上配置

注:出现错误Error loading class ‘org.apache.solr.handler.dataimport.DataImportHandler’



需配置(solrconfig.xml里)

  <!– start –>

  <lib dir="D:/solr/apache-solr-3.5.0/contrib/extraction/lib" />

  <lib dir="D:/solr/apache-solr-3.5.0/dist/" regex="apache-solr-cell-\d.*\.jar" />

  <lib dir="D:/solr/apache-solr-3.5.0/dist/" regex="apache-solr-clustering-\d.*\.jar" />

  <lib dir="D:/solr/apache-solr-3.5.0/dist/" regex="apache-solr-dataimporthandler-\d.*\.jar" />

  <lib dir="D:/solr/apache-solr-3.3.0/contrib/clustering/lib/" />

  <lib dir="/total/crap/dir/ignored" />



  <!– end –>

dir注意路径

重启tomcat

创建索引:http://localhost:8080/solr/core1/dataimport?command=full-import

http://localhost:8080/solr/dataimport?command=full-import 这 url 告诉 solr 做全量索引,做索引中会删除所有数据。当然也可以用 clean=false 参数来告诉它不删除,但也会删除相同id的(在 scheam.xml 的uniqueKey 声明的)。http://localhost:8080/solr/dataimport?command=full-import&clean=false

批量导入command=delta-import&commit=y

重新装载配置文件command=reload-config

终止导入command=abort
分享到:
评论

相关推荐

    搜索引擎solr环境配置、分词及索引操作

    搜索引擎solr环境配置、分词及索引操作

    solr7.4.0入门讲解,实时增量同步等

    solr入门环境搭建,sorl ik分词器分词,solr数据库数据导入,solr同步等技术实现及配置.版本solr7.4.0 + ikanalyzer-solr5 + solr-dataimport-scheduler

    linux环境下 使用的solr

    该solr 可以自动同步mysql数据库,要想同步其他数据库,可自行修改链接数据库配置 。已添加分词功能。下载后, 只需要修改部分路径即可。

    windows环境下 使用的solr

    该solr 可以自动同步mysql数据库,要想同步其他数据库,可自行修改链接数据库配置 。已添加分词功能。下载后, 只需要修改部分路径即可。

    全文搜索引擎Solr与ElasticSearch入门至集群及项目实战(Solr+ES)

    6、通过managed-schema配置Field以及中文分词器 7、将数据库中的数据导入至Solr索引库 8、通过Solr后台管理界面对索引进行CRUD高亮过滤排序分页 9、通过Solrj实现索引的添加更新 10、通过Solrj实现索引的删除 11、...

    Lucene全文检索框架+Solr+ElasticSearch搜索引擎(Java高级必备.ES)

    5、通过managed-schema配置Field以及中文分词器 6、将数据库中的数据导入至Solr索引库 7、通过Solr后台管理界面对索引进行CRUD高亮过滤排序分页 8、通过Solrj实现索引的添加更新 9、通过Solrj实现索引的删除 10...

    自己动手写搜索引擎(罗刚著).doc

    8.1.1 Solr服务器端的配置与中文支持 232 8.1.2 把数据放进Solr 237 8.1.3 删除数据 240 8.1.4 客户端搜索界面 241 8.1.5 Solr索引库的查找 242 8.1.6 索引分发 246 8.1.7 Solr搜索优化 246 8.1.8 Solr中字词混合...

    HBase视频教程下载|基于微博数据应用的HBase实战开发

    课时26:数据层设计与中文分词器配置 课时27:Spring集成HBase之核心操作 课时28:Spring集成HBase之核心操作(续) 课时29:基于dom4j进行数据文件解析 课时30:数据层设计与实现之二级索引开发 课时31:数据层设计...

    java开源包1

    AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...

    java开源包11

    AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...

    java开源包2

    AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...

    java开源包3

    AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...

    java开源包6

    AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...

    java开源包5

    AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...

    java开源包10

    AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...

    java开源包4

    AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...

    java开源包8

    AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...

    java开源包7

    AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...

    java开源包9

    AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...

    java开源包101

    AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器...

Global site tag (gtag.js) - Google Analytics