今天重点讲模糊检索中文名字 solr对中文进行分词,如果不是一个词,可能会丢失字,然后在查询名字的,会感觉不太准确。 solr里面提供了很多查询匹配的方法例如: 1.使用*:resume_keyword:*王* 2.使用AND 拼接查询 keywords:*建筑* AND personName:*王* 3.OR keyword:建筑 OR personName:王 4. 否: AND resume_keyword:(* NOT *李*) 上面的都是用拼接的,也可以用过滤query.addFilterQuery(" per_name:(*李* )"); 5.名字匹配法:之前做搜索的时候,名字设置成了分词,然后分词结果不太准确,比如:ABC,它可能分成了AB 然后没有C,所以你在查询的时候,就查不到ABC。 之前的分词是IK <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer"/> <analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType> 出现了上述问题,然后我们研究了一下schema.xml里面的属性类型,之前用text_ik, 改成了text_general
还在继续摸索solr,schema.xml里面有很多东西需要学习,如果明白了这个,我觉得solr的核心东西,你基本就懂了 |
|