今天重點(diǎn)講模糊檢索中文名字
solr對中文進(jìn)行分詞,如果不是一個(gè)詞,可能會(huì )丟失字,然后在查詢(xún)名字的,會(huì )感覺(jué)不太準確。
solr里面提供了很多查詢(xún)匹配的方法例如:
1.使用*:resume_keyword:*王*
2.使用AND 拼接查詢(xún) keywords:*建筑* AND personName:*王*
3.OR keyword:建筑 OR personName:王
4. 否: AND resume_keyword:(* NOT *李*) 上面的都是用拼接的,也可以用過(guò)濾query.addFilterQuery(" per_name:(*李* )");
5.名字匹配法:之前做搜索的時(shí)候,名字設置成了分詞,然后分詞結果不太準確,比如:ABC,它可能分成了AB 然后沒(méi)有C,所以你在查詢(xún)的時(shí)候,就查不到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>
出現了上述問(wèn)題,然后我們研究了一下schema.xml里面的屬性類(lèi)型,之前用text_ik, 改成了text_general,這樣它就可以把ABC分成了A,B,C 通過(guò)一個(gè)其中的一個(gè)字或者ABC都可以檢索了,就不用上面的模糊匹配了,就算匹配了,也不太準,可能把自己需要的那一行數據放到了第七八行,而不是第一行。如果按照上面修改,就可以把想要的數據放到第一位了
期間看到網(wǎng)上有介紹,把你傳入的字進(jìn)行分詞,然后把分的詞當條件傳進(jìn)去,這種思路可行,我覺(jué)得比較符合檢索文章的關(guān)鍵字
還在繼續摸索solr,schema.xml里面有很多東西需要學(xué)習,如果明白了這個(gè),我覺(jué)得solr的核心東西,你基本就懂了
聯(lián)系客服