solr-4.10.4环境搭建+导入数据库+中文分词
来源:互联网 发布:centos官方网站 编辑:程序博客网 时间:2024/04/30 15:40
solr配置
1.安装java
2.安装tomcat
注意,修改tomcat的字符编码:
3.将solr-4.10.4.zip压缩包解压
4.将exmaple/webapps中的solr.war包解压开复制到Tomcat的webapps中,
或者直接将solr.war包直接复制到Tomcat的webapps中,
复制example/lib/ext目录中的jar包放到webapps/solr/WEB-INF/lib下
设置日志,将example/resources/log4j.properties也拷
webapps/solr/WEB-INF/lib/classes目录,classes需要自行创建,
这里要注意,这个properties中的配置为:
/**log4j.appender.file.File=${solr.log}/solr.log, solr.log为tomcat启动时指定的变量,如果没指定,日志文件可能会写到其他目录下。其实这里直接写成绝对路径也是不错的选择。**/
然后启动Tomcat使
其解压开再将war包删除
5.将example/solr目录拷贝到solrhome 文件夹中,并重命名为solrhome
6.设置solrhome 打开solr/WEB-INF/web.xml文件,找到env-entry
<!-- solr home文件位置 --> <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>E:\solrhome</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
7.注意
linux:
1.vi /opt/tomcat/conf/server.xml2.cp solr-4.5.0/dist/solr-4.5.0.war /opt/tomcat/webapps/solr.war3.vi /opt/tomcat/webapps/solr/WEB-INF/web.xml4.solr4.3+的war包中不包含任何日志的jar包,你需要自己手动添加5. cp solr-4.5.0/example/lib/ext/* /opt/tomcat/webapps/solr/WEB-INF/lib/6. mkdir /opt/tomcat/webapps/solr/WEB-INF/classes/7. cp solr-4.5.0/example/resources/log4j.properties /opt/tomcat/webapps/solr/WEB-INF/classes/
ik配置
1.下载ik :ik-analyzer(中文分词工具包)
http://git.oschina.net/wltea/IK-Analyzer-2012FF
2.解压后,将IKAnalyzer2012FF_u1.jar拷贝到:
webapps/solr/WEB-INF/lib
3.将IKAnalyzer.cfg.xml和stopword.dic拷贝到:solr_home/core0(或collection1)/conf
4.修改schema.xml,添加:
<!--- 配置中文分词器--> <fieldtype name="text_ik" class = "solr.TextField"> <analyzer type="index" inMaxWordLength="true" class ="org.wltea.analyzer.lucene.IKAnalyzer" /> <analyzer type="query" inMaxWordLength="true" class ="org.wltea.analyzer.lucene.IKAnalyzer" /> </fieldtype>
5.重启tomcat
导入数据库数据:
1.solrconfig.xml 配置
使用DataImportHandler导入并索引数据
<!-- 添加数据库导入功能 --> <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">E:\solrhome\collection1\conf\db\db-data-config.xml</str> </lst> </requestHandler>
2.导入jar和数据库驱动包,放到webapps/solr/WEB-INF/lib
solr-dataimporthandler-4.10.4.jar
solr-dataimporthandler-extras-4.10.4.jar
数据库驱动包
3.E:\solrhome\collection1\conf 下创建db文件夹,创建文件:db-data-config.xml
<dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1/goods" user="root" password="root"/> <document name="goods"> <entity name="book" transformer="ClobTransformer" pk="bid" query="select bid,bname,author,price,currprice,discount,press,publishtime,edition,pagenum,wordnum,printtime,booksize,paper from t_book"> <field column="bid" name="id" /> 必须为id <field column="bname" name="bname"/> <field column="author" name="bauthor"/> <field column="price" name="bprice"/> <field column="currprice" name="bcurrprice"/> <field column="discount" name="bdiscount"/> <field column="press" name="bpress"/> <field column="publishtime" name="bpublishtime"/> <field column="edition" name="bedition"/> <field column="pagenum" name="bpagenum"/> </entity> </document> </dataConfig><!--说明:dataSource是数据库数据源。Entity就是一张表对应的实体,pk是主键,query是查询语句。Field对应一个字段,column是数据库里的column名,后面的name属性对应着Solr的Filed的名字。-->
4 修改schema.xml,这是Solr对数据库里的数据进行索引的模式
(1)保留version 这个field
(2)添加索引字段:这里每个field的name要和db-data-config.xml里的entity的field的name一样,一一对应。
<field name="_version_" type="long" indexed="true" stored="true"/> <!-- 数据库字段配置: --> <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="bname" type="text_ik" indexed="true" stored="true" multiValued="true"/> <field name="bauthor" type="text_ik" indexed="true" stored="true" multiValued="true"/> <field name="bprice" type="text_ik" indexed="true" stored="true" multiValued="true"/> <field name="bcurrprice" type="text_ik" indexed="true" stored="true" multiValued="true"/> <field name="bdiscount" type="text_ik" indexed="true" stored="true" multiValued="true"/> <field name="bpress" type="text_ik" indexed="true" stored="true" multiValued="true"/> <field name="bpublishtime" type="text_ik" indexed="true" stored="true" multiValued="true"/> <field name="bedition" type="text_ik" indexed="true" stored="true" multiValued="true"/> <field name="bpagenum" type="text_ik" indexed="true" stored="true" multiValued="true"/> <uniqueKey>id</uniqueKey>
5 删除多余的field,删除copyField里的设置,注意:text这个field不能删除,否则Solr启动失败。
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
6 设置唯一主键:id,注意:Solr中索引的主键默认
是只支持type=”string”字符串类型的,而如果数据库中id是int型的,会有问题,解决方法:修改同目录下的elevate.xml,注释掉下面2行,这貌似是Solr的Bug,原因不明。
<doc id="MA147LL/A" /><doc id="IW-02" exclude="true" />
7 重启Solr,如果配置正确就可以启动成功。
solrconfig.xml是solr的基础文件,里面配置了各种web请求处理器、请求响应处理器、日志、缓存等。schema.xml配置映射了各种数据类型的索引方案。分词器的配置、索引文档中包含的字段也在此配置。
8.点击Dataimport,Command选择full-import(默认),点击“Execute”,Refresh Status就可以看到结果
- solr-4.10.4环境搭建+导入数据库+中文分词
- solr服务快速搭建、配置中文分词、数据导入即solrj增删改查
- 开源搜索引擎Solr环境配置、中文分词、数据库做为索引源及索引操作
- Solr搜索引擎(4)中文分词器
- solr中文分词
- solr+mmseg4j 中文分词
- solr中文分词(mmseg4j)
- Solr 中文分词器
- solr+mmseg4j 中文分词
- solr中文分词
- solr+mmseg4j 中文分词
- Solr 使用中文分词
- solr中文分词(mmseg4j)
- solr配置中文分词
- Solr之中文分词
- solr-中文分词配置
- solr中文分词
- Apache Solr 中文分词
- hdu2028 Lowest Common Multiple Plus
- 关于函数调用方式`__stdcall`和`__cdecl`
- 【炼数成金-推荐系统笔记】
- LeetCode 203. Remove Linked List Elements 解题报告
- 基本语句的综合运用
- solr-4.10.4环境搭建+导入数据库+中文分词
- Mac OS X Yosemite 10.10.5使用Toolbox安装Docker
- 记录心情——机房重构的开始
- 程序加载中,请稍后...progressDialog的使用
- 【ZOJ】1586 - QS Network(克鲁斯塔尔)
- 谈Objective-C Block的实现
- 【BZOJ1226】【SDOI2009】学校食堂
- awk
- 拷贝控制