Solr学习笔记(二)

版权声明:转载请标明出处~~ https://blog.csdn.net/weixin_43231076/article/details/83145375

solr中文分析器的安装配置:

1、IK Analyzer 是一个开源的,基亍 java 语言开发的轻量级的中文分词工具包。从 2006年 12 月推出 1.0 版开始, IKAnalyzer 已经推出了 4 个大版本。最初,它是以开源项目Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。从 3.0 版本开始,IK 发展为面向 Java 的公用分词组件,独立亍 Lucene 项目,同时提供了对 Lucene 的默认优化实现。在 2012 版本中,IK 实现了简单的分词歧义排除算法,标志着 IK 分词器从单纯的词典分词向模拟语义分词衍化。
2、把IKAnalyzer2012FF_u1.jar 添加到 solr 工程的 lib 目录下:链接:https://pan.baidu.com/s/1YKMz5xuxUKKuijhR_o_Zcg 提取码:q3e0
3、创建WEB-INF/classes文件夹把扩展词典、停用词词典、配置文件(ext_stopword.dic,mydict.dic,IKAnalyzer.cfg.xml)放到 solr 工程的 WEB-INF/classes 目录下。
ext_stopword.dic里面配置的是一些不参与分词的字,比如说:是、的、也、了 等等,这些词用户也不会去进行搜索
mydict.dic里面配置的是让一些字在分词的时候成为一个词语,比如:高富帅三个字,如果不在mydict.dic配置,分词时就会分出三个词,但是配置,就会把他们合成一个词
(注意ext_stopword.dic和mydict.dic里面的词语必须是UTF-8编码的)
4、修改 Solrhome 的 schema.xml(F:\Program Files\solrhome\collection1\conf\schema.xml) 文件,配置一个 FieldType,使用 IKAnalyzer,添加一段配置:
<fieldType name="text_ik" class="solr.TextField">
	<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

solr中配置域:

1、域相当于数据库的表字段,用户存放数据,因此用户根据业务需要去定义相关的Field(域),一般来说,每一种对应着一种数据,用户对同一种数据进行相同的操作。
域的常用属性:
•	name:指定域的名称
•	type:指定域的类型(如果这一个域要进行中文分词,那type就要设置成上面设置的类型-->text_ik)
•	indexed:是否索引(需要对这个字段进行搜索时,就设置成true,例如:一个商品的title需要设置成true,但是商品的图片地址image就不需要)
•	stored:是否存储
•	required:是否必须(表示这个域是否是必须添加的,id域就是必须添加的)
•	multiValued:是否多值
2、solr的复制域:
复制域的作用在于将某一个Field中的数据复制到另一个域中,复制域里面的内容不需要存储,所以stored:false,而且它里面可能会有多个值,所以multiValued:true
比如说:搜索商品的时候,输入的关键字可能是名称,品牌,商家名称,不如不配置复制域,就不知道该去哪个域搜索,此时可以将名称,品牌,商家名称的内容复制到一个复制域中,只搜索这个复制域即可
3、solr的动态域:
当我们需要动态扩充字段时,我们需要使用动态域。比如说对于以上商品,商品的规格可能是根据商品的分类有不同的值,此时就需要配置动态域
配置方式:<dynamicField name="item_spec_*" type="string" indexed="true" stored="true" />,*号的位置,可以自己根据实际情况设置不同的值

猜你喜欢

转载自blog.csdn.net/weixin_43231076/article/details/83145375
今日推荐