使用solr進行某較長詞搜索時出現了一些問題,及解決方案。
1、問題:solr默認使用OR方式搜索,當搜索一個很長的次,比如“XX集團股份有限公司”,分詞器分詞后,使用OR方式匹配,會匹配到很多結果。
解決:然后我使用了AND方式搜索(managed-schema中設置<solrQueryParser defaultOperator="AND">),結果匹配的很精准了。
2、問題:但是當我搜索“XX集團股份有限公”的時候,匹配到0個結果,因為存入時索引的信息為:XX 集團 股份 有限 公司,而查詢時“XX集團股份有限公”的分詞結果為:XX 集團 股份 有限 公,因此AND方式搜索,無任何匹配結果。
解決:改回使用OR方式搜索,但是加上匹配個數的限制(defType:edismax, mm:80% ),mm為最小匹配數量,可以是數值或者百分比。