solr部署+IK+索引mysql数据库

来源:互联网 发布:手机淘宝的秒杀在哪里 编辑:程序博客网 时间:2024/06/06 13:08

部署到tomcat

1

创建一个Solr home目录,存储运行Solr实例所有的配置文件和数据(Lucene索引文件)。
将F:\develop\solr作为Solr Home。

1. 将example\solr下的内容 拷贝至 F:\develop\solr目录下

2. 修改F:\develop\solr\collection1\conf目录下solrconfig.xml文件,将dataDir节点的值指向F:\develop\solr。如下图所示:


2

1. 将dist\solr-4.10.3.war解压,将下边的内容拷贝到Tomcat目录下的webapp/solr目录中

2. 将dist\solrj-lib 目录下所有jar包到Tomcat主目录 的lib目录下

3. 拷贝example\lib\ext 目录下所有jar包到Tomcat的webapp\solr\WEB-INF\lib目录下
4. 拷贝log4j.properties文件
在 Tomcat下webapps\solr\WEB-INF目录中创建文件 classes文件夹,
复制Solr目录下example\resources\log4j.properties至Tomcat下webapps\solr\WEB-INF\classes目录


5. 修改Tomcat的url字符集,修改conf/server.xml文件
6. 修改Tomcat目录 下webapp\solr\WEB-INF\web.xml文件,如下所示:
设置Solr home

安装中文分词器


1. 拷贝IKAnalyzer的文件到Tomcat下Solr目录 中

将IKAnalyzer2012FF_u1.jar拷贝到 Tomcat的webapps/solr/WEB-INF/lib 下。
在Tomcat的webapps/solr/WEB-INF/下创建classes目录
将IKAnalyzer.cfg.xml、ext_stopword.dic mydict.dic copy到 Tomcat的
webapps/solr/WEB-INF/classes

注意:ext_stopword.dic 和mydict.dic必须保存成无BOM的utf-8类型。


2. 修改Solr的schema.xml文件

添加FieldType:

<!-- IKAnalyzer-->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

添加Field:

<!--IKAnalyzer Field-->
<field name="title_ik" type="text_ik" indexed="true" stored="true" />
<field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>

导入mysql数据库

该步奏参考http://iamyida.iteye.com/blog/2210621

1:把E:\solr-5.1.0\dist目录下的solr-dataimporthandler-5.1.0.jar复制到E:\apache-tomcat-7.0.55\webapps\solr\WEB-INF\lib目录下
2:复制一个MySQL数据库驱动jar包到E:\apache-tomcat-7.0.55\webapps\solr\WEB-INF\lib目录下,如果没有用maven的朋友,可以直接在项目里的lib包下找到这个包,我的项目里就是mysql-connector-java-5.1.7-bin.jar
3:在solrconfig.xml中添加如下配置开启数据导入功能:
<requestHandler name="/dataimport" class="solr.DataImportHandler">        <lst name="defaults">              <str name="config">data-config.xml</str>        </lst>  </requestHandler>  
将以上代码放在<requestHandler name="/select" class="solr.SearchHandler">的上面,其实放哪里都可以,只要是在config标签里就行了
4:在当前目录下创建data-config.xml文件
<?xml version="1.0" encoding="UTF-8" ?><dataConfig>    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"      url="jdbc:mysql://192.168.2.201:3306/book_publishing" user="root" password="root"/>     <document name="book_publishing"> <entity name="book" transformer="HTMLStripTransformer" query="select id,name,author,keyword,intro,editor,edition,cover,publishDate,resourceType,classifyCode,price from book">  <field column="id" name="id" /> <field column="name" name="title" /> <field column="resourceType" name="resourcetype" /><field column="author" name="author" /> <field column="keyword" name="keyword" /><field column="intro" name="content" stripHTML="true"/> <field column="cover" name="url" /><field column="publishDate" name="publishdate" /><field column="classifyCode" name="classifycode" /><field column="price" name="price" /></entity>  <entity name="content" transformer="HTMLStripTransformer" query="select contentid,markid,title,author,keyword,intro,bookName,resourceType,classifyCode,price from content">  <field column="contentid" name="id" /> <field column="title" name="title" /> <field column="resourceType" name="resourcetype" /><field column="author" name="author" /> <field column="keyword" name="keyword" /><field column="intro" name="content" stripHTML="true"/> <field column="bookName" name="bookname" /><field column="classifyCode" name="classifycode" /><field column="price" name="price" /> </entity>   <entity name="resource" transformer="HTMLStripTransformer" query="select resourceid,resourceName,author,keyword,intro,bookid,bookName,path,resourceType,classifyCode,price from resource">  <field column="resourceid" name="id" /> <field column="resourceName" name="title" /> <field column="resourceType" name="resourcetype" /><field column="author" name="author" /> <field column="keyword" name="keyword" /><field column="intro" name="content" stripHTML="true"/> <field column="bookid" name="bookid" /><field column="bookName" name="bookname" /><field column="path" name="url" /><field column="classifyCode" name="classifycode" /><field column="price" name="price" />  </entity>       </document>  </dataConfig> 


这里载入的时候时间比较长,耐心等待,最后使用query直接查询就可以了,

 








 

 


0 0
原创粉丝点击