搭建solr服务器
1.安装jdk、tomcat2.解压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]