death114 发表于 2017-12-18 21:40:40

搭建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不重复即可
  需要自定义一个FieldType。Schema.xml中定义。可以在FieldType中指定中文分析器。
  <fieldType name="text_ik">
  <analyzer/>
  </fieldType>
  8.自定义业务域
  确定搜索的sql语句
  例如:

  

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  


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/>
  清空索引库:
  

<delete><query>*:*</query></delete>  
<commit/>
  
页: [1]
查看完整版本: 搭建solr服务器