在测试一个查询的时候,我发现第二条搜索结果非常令人不满意,竟然是一条毫无关系的结果。仔细查看了Explanation之后,看到了如下情况:
同义词有很多条,这些同义词虽然每一个的得分都不高,但是累积起来就产生了3.3分左右的高分,直接将一条不相干的结果凑成了相关的结果。
从这里看出Lucene的同义词有一个缺陷,如果一个词的同义词越多,那么这个词就越容易获得更高的分数。但事实上,同义词只要有一个匹配上了,其它都不应该继续匹配。
完整的Explanation在下一页
在测试一个查询的时候,我发现第二条搜索结果非常令人不满意,竟然是一条毫无关系的结果。仔细查看了Explanation之后,看到了如下情况:
同义词有很多条,这些同义词虽然每一个的得分都不高,但是累积起来就产生了3.3分左右的高分,直接将一条不相干的结果凑成了相关的结果。
从这里看出Lucene的同义词有一个缺陷,如果一个词的同义词越多,那么这个词就越容易获得更高的分数。但事实上,同义词只要有一个匹配上了,其它都不应该继续匹配。
完整的Explanation在下一页
DisjunctionMaxQuery 用这个query包住整个同义词的query,会取最大值。