[solr ] 使用一元分词后,结果中最匹配的却不能排在前面

summer7611 2016-07-01
刚刚接触Solr,在不熟悉的情况下先使用了一元分词。一元分词也比较能满足我对结果广度的需求,而且在用户输入部分文字时,也能模糊搜寻出结果来,然后就是高亮的效果也比较好。

现在的问题是搜索出来的结果往往不能把最精确的匹配排在前面。

假设一个例子,如我搜索
q="company":"万科"
,出来很多公司名的结果。排在前面的却不是精确包含"万科"的公司,如"万科企业股份有限公司"等。而是如"天津万和科技发展股份有限公司"等这样包含""和""字的公司。

更深一层,假设我有两个字段,"company"和"person"。我使用edismax的qf进行权重排序:
qf=company person^10
。这样我就可以同时搜索company字段和person字段了。我搜索
q="万科" "王石"
,理想的结果当然是得到"万科企业股份有限公司"和相匹配的人名"王石"了。但是我这里就有可能的到如"天津万和科技发展股份有限公司"加上"王又石"这样的结果。

我不是说得到这样的结果不好,这是我期望的,有很大的广度和模糊匹配效果。但是往往这些结果却排在了最精确的结果上面,而精确结果却要到很后面才找到。

不知道大牛们有没有解决办法?还是一元分词就没有办法做出精确度很好的搜索?
IT火星人 2016-07-22
一元分词基本上是做不到的,他把所查的词分成单个字进行搜索了。可以使用一些中文分词来做,不过就是属于多元分词的了。
Global site tag (gtag.js) - Google Analytics