搭建solr服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建solr服务器相关的知识,希望对你有一定的参考价值。

1.安装jdk、tomcat

2.解压solr压缩包

3.复制solr/dist的solr.war并部署到tomcat并启动tomcat,

    使用tail -f logs/catalina.out查看日志可以看到成功解压

4.源码中example/lib/ext下的日志依赖jar包复制到tomcat的工程中去  

  pwd查看当前完整路径   复制当前文件夹下的所有文件:cp * path   复制所有到路径中

5.创建solrhome:将example文件夹下的solr复制到tomcat的同级目录并改名为solrhome

  需要修改的配置文件是:/solrhome/conllection1/conf/schema.xml和solrconfig.xml  

6.修改项目中的web.xml中

<env-entry>
  <env-entry-name>solr/home</env-entry-name>
  <env-entry-value>放入solrhome的路径</env-entry-value>
  <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

6.启动tomcat

  访问http://192.168.25.3:8040/solr

7.配置中文分析器

  IK Analyzer 2012FF_hf1下的三个文件

   IKAnalyzer2012FF_u1.jar   jar包加入项目的lib文件夹中

    两个词典 mydict.dic  ext_stopword.dic   一个配置文件  IKAnalyzer.cfg.xml  放入WEB-INF目录下新建的classes文件夹中

    修改schema.xml文件,在最后添加name不重复即可

      需要自定义一个FieldTypeSchema.xml中定义。可以在FieldType中指定中文分析器。

<fieldType name="text_ik" class="solr.TextField">
  <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

8.自定义业务域

确定搜索的sql语句

例如:

技术分享
 1 SELECT
 2     a.id,
 3     a.title,
 4     a.sell_point,
 5     a.price,
 6     a.image,
 7     b.`name` category_name,
 8     c.item_desc
 9 FROM
10     tb_item a
11 LEFT JOIN tb_item_cat b ON a.cid = b.id
12 LEFT JOIN tb_item_desc c ON a.id = c.item_id
13 WHERE
14     a.`status` = 1
sql语句
技术分享
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price"  type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />
<field name="item_desc" type="text_ik" indexed="true" stored="false" />

<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>
<copyField source="item_desc" dest="item_keywords"/>
schema.xml中插入

 

  

SELECT

a.id,

a.title,

a.sell_point,

a.price,

a.image,

b.`name` category_name,

c.item_desc

FROM

tb_item a

LEFT JOIN tb_item_cat b ON a.cid = b.id

LEFT JOIN tb_item_desc c ON a.id = c.item_id

WHERE

a.`status` = 1

 

 

 

 

根据id删除document:

<delete>
<id>change.me</id>
</delete>
<commit/>

 

 

 

 

 










以上是关于搭建solr服务器的主要内容,如果未能解决你的问题,请参考以下文章

关于Solr服务搭建

solr服务的搭建(以solr4.1实现)

Solr服务搭建(Linux:CentOS)

搭建 Solr 单机服务

solr 学习片段

搭建solr服务器