您的位置:首页 > 数据库 > MySQL

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

2015-10-13 17:14 531 查看

部署到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直接查询就可以了,

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: