上篇我们已经基本搭建好了solr服务器,但是这样并不能使用,我们还需要借助ik分词器一并使用
因为在solr中默认使用的是中文分析器,这个是需要我们手工配置的。配置FieldType中指定中文分析器。而且Solr中的字段必须是先定义后使用。
回归正题:接下来就来配置FieldType了.
第一步:使用IK-Analyzer。把分析器的文件夹上传到服务器。(上篇我们已经完成了)
第二步:把分析器的jar包添加到solr工程中。
![分析器](https://img.php1.cn/3cd4a/1eebe/cd5/ff61bfdd3c0af92e.webp)
cd /usr/local/soft/IK\ Analyzer\ 2012FF_hf1/
cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomacat/webapps/solr/WEB-INF/lib/
第三步:把IKAnalyzer需要的扩展词典及停用词词典、配置文件复制到solr工程的classpath下。
cd /usr/local/solr/tomcat/webapps/solr/WEB-INF/
mkidr classes
cd /usr/local/soft/IK\ Analyzer\ 2012FF_hf1/
cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
(注意:扩展词典及停用词词典的字符集必须是utf-8。不能使用windows记事本编辑或打开过。)
第四步:配置fieldType。需要在solrhome/collection1/conf/schema.xml中配置。
(技巧:使用vi、vim跳转到文档开头gg。跳转到文档末尾:G)
cd /usr/local/solr/solrhome/collection1/conf/
vim schema.xml
添加以下fieldType:
<fieldType name&#61;"text_ik" class&#61;"solr.TextField"><analyzer class&#61;"org.wltea.analyzer.lucene.IKAnalyzer"/>
fieldType>
fileType中name是自定义的,其他的不能作任何改变!
接下来继续配置业务字段(根据需要作分词的表中字段选择是否分词,重点)
<field name&#61;"item_title" type&#61;"text_ik" indexed&#61;"true" stored&#61;"true"/>
<field name&#61;"item_sell_point" type&#61;"text_ik" indexed&#61;"true" stored&#61;"true"/>
<field name&#61;"item_price" type&#61;"long" indexed&#61;"true" stored&#61;"true"/>
<field name&#61;"item_image" type&#61;"string" indexed&#61;"false" stored&#61;"true" />
<field name&#61;"item_category_name" type&#61;"string" indexed&#61;"true" stored&#61;"true" />
<field name&#61;"item_desc" type&#61;"text_ik" indexed&#61;"true" stored&#61;"false" />
<field name&#61;"item_keywords" type&#61;"text_ik" indexed&#61;"true" stored&#61;"false" multiValued&#61;"true"/>
<copyField source&#61;"item_title" dest&#61;"item_keywords"/>
<copyField source&#61;"item_sell_point" dest&#61;"item_keywords"/>
<copyField source&#61;"item_category_name" dest&#61;"item_keywords"/>
<copyField source&#61;"item_desc" dest&#61;"item_keywords"/>
name&#61;“表字段” type&#61;“表字段对应的存储类型” indexed&#61;“是否作为索引” stored&#61;“是否进行存储”
复制域,第一次搜索不到结果会进行字段存储,下次进行查询的时候,可以直接获取结果,不用再查询数据库.
— 利用java后端客户端进行操作solr![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/70be2ca197098d98.webp?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpaHVhaXlhbg&#61;&#61;,size_16,color_FFFFFF,t_70)
注意&#xff1a;扩展词典及停用词词典的字符集必须是utf-8。不能使用windows记事本编辑。
第四步&#xff1a;配置fieldType。需要在solrhome/collection1/conf/schema.xml中配置。
技巧&#xff1a;使用vi、vim跳转到文档开头gg。跳转到文档末尾&#xff1a;G
业务字段配置
业务字段判断标准&#xff1a;
1、在搜索时是否需要在此字段上进行搜索。例如&#xff1a;商品名称、商品的卖点、商品的描述
2、后续的业务是否需要用到此字段。例如&#xff1a;商品id。
需要用到的字段&#xff1a;
1、商品id
2、商品title
3、卖点
4、价格
5、商品图片
6、商品分类名称
7、商品描述
重新启动tomcat就好了!
成功访问solr服务器如图:
![在这里插入图片描述](https://img.php1.cn/3cd4a/189d8/b64/5b34b53b79a39fdd.jpeg?x-oss-process&#61;image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpaHVhaXlhbg&#61;&#61;,size_16,color_FFFFFF,t_70)
Linux中如何搭建单机版solr服务器上篇:https://blog.csdn.net/yihuaiyan/article/details/88351676