我有一个支持完全匹配和部分匹配的SOLR查询。查询词添加了适当的提升因子,其中完全匹配的提升系数高于部分匹配。
但是,在部分匹配中,我们也希望以这样一种方式定义提升因子:
具有完整单词的部分匹配比作为单词的一部分显示的部分匹配具有更高的优先级。
例如:如果用户搜索字符串"Annie Hall",则包含"Tanner Hall"、"Hall Pass"等值的文档应具有更高的权重(优先级):"万圣节"、"拯救万圣节的狗"。他们都是部分比赛,但"霍尔"在"坦纳大厅"和"大厅通行证"中作为一个单独的词出现,因此他们应该有更多的分数。
请帮忙。
问候
我假设您正在为查询使用 ngram 过滤器,因为它能够匹配完全匹配和部分匹配。
如果是这样,则始终可以有两个字段。
- 具有更高提升的非 Ngramed 字段 - 文本
- G正常升压的磁场 - text_ngram
例如,对于 dismax - text^2 text_ngram
将导致级长匹配比部分匹配具有更高的提升。
请记住,如果有完整的匹配,也会有一个部分匹配,所以这是一个累积的提升。