solr4.40导入mysql数据库数据建立索引

来源:互联网 发布:小米6相机数据怎么清除 编辑:程序博客网 时间:2024/04/29 18:00
首先必须安装好Solr4.40和MySql数据库
Solr4.40安装到widows下请参考我的另一篇文章http://blog.csdn.net/h348592532/article/details/14452847
1.打开solrHome下例如我本机上的E:\solrTest\solrHome\core0\conf\solrconfig.xml(注意个人配置位置不一样,配置文件所在位置就不一样
加入以下内容:
  
 <requestHandler name="/dataimport" class = "org.apache.solr.handler.dataimport.DataImportHandler">    <lst name="defaults">      <str name="config">db-data-config.xml</str>        </lst>      </requestHandler>


2然后再solrconfig.xml同个目录下创建db-data-config.xml文件
填入内容如下:
 
  <dataConfig>  <!--数据库配置信息-->      <dataSource type="JdbcDataSource"                     driver="com.mysql.jdbc.Driver"                    url="jdbc:mysql://127.0.0.1:3306/test"                     user="root"                     password=""/>  <!--查询语句并重命名-->      <document>          <entity name="user"                   query="select * from user">  <field column="id" name="id"/><field column="name" name="name"/>   <field column="age" name="age"/>           </entity>        </document>      </dataConfig>  


注意:必须引入在solr\WEB-INF\lib下必然引入solr-dataimporthandler-4.4.0.jar包 ,此包存在于solr安装包下solr-4.4.0\dist目录下
安装Mysql数据库创建user表这些我就不说了,你们应该都会,不会可以百度,还要记得引入mysql-connector-java-5.1.18-bin.jar
3solrHome下面默认是没有引入分词器,要根据自己需求引入所需要分词器,并且我们要配置我们要查询的域
,要跟db-data-config.xml配置的相对应,我使用的是NGramTokenizer分词器
,你们可以根据自己需求换成别的分词器
在配置文件schema.xml下的<types></types>之间加入以下内容:
 
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">      <analyzer type="index"><tokenizer class="solr.NGramTokenizerFactory" /><filter class="solr.StopFilterFactory" ignoreCase="true"words="stopwords.txt" enablePositionIncrements="true" /><!-- in this example, we will only use synonyms at query time <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> --><filter class="solr.LowerCaseFilterFactory" /></analyzer><analyzer type="query"><tokenizer class="solr.NGramTokenizerFactory" /><filter class="solr.StopFilterFactory" ignoreCase="true"words="stopwords.txt" enablePositionIncrements="true" /><filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"ignoreCase="true" expand="true" /><filter class="solr.LowerCaseFilterFactory" /></analyzer>    </fieldType>

还要在<fields></fields>下如下:(text对于上面text:会被分词器处理)
 
<fields>     <!-- general -->  <field name="id"        type="long"   indexed="true"  stored="true"  multiValued="false" required="true"/>  <field name="name"      type="text"   indexed="true"  stored="true"  multiValued="false" />   <field name="age"       type="long"   indexed="true"  stored="true"  multiValued="false" />   <field name="core0"     type="string"    indexed="true"  stored="true"  multiValued="false" />  <field name="_version_" type="long"      indexed="true"  stored="true"/> </fields>

4在同目录下创建stopwords.txt和synonyms.txt,里面可以填入自己定义的停词和近义词
我的配置文件大概是这样
怕你们弄错了展示下schema.xml如下:
5启动tocmat运行,在浏览器输入:http://127.0.0.1:8080/solr
以下是点击查看:1数据库引入配置文件2查询情况3分词情况
谢谢查看,需要案例文件请留言和留下邮箱地址,欢迎相互学习探讨
原创粉丝点击