当我在 Oracle 中运行以下文本搜索查询时:
SELECT SCORE(1), text_search
FROM search
WHERE contains(text_search, 'fuzzy(citi, 70, 100, WEIGHT) within Name', 1) > 0
ORDER BY SCORE(1) DESC
返回的最高得分为 100 的记录是包含多个与“citi”相似的词的记录:堪萨斯
城-得分 100
但包含完全匹配的记录只有 76 分:
花旗集团 - 得分 76
仅包含一个相似词的记录得分为 53
City of Abilene - 得分 53
完全匹配的记录不应该是最高分吗?有没有办法做到这一点?
如果我增加到similarity_score
80,则不再返回带有“城市”的记录。但这会减少其他搜索返回的记录数量。
如果我减少numterms
到 2,则不再返回带有“city”的记录(显然 Oracle 不认为“city”是“citi”的第二个最相似的词)。但这再次减少了其他搜索返回的记录数。