【发布时间】:2018-06-04 09:05:58
【问题描述】:
我有这个要求:如果查询文本与特定字段值(标题字段)完全匹配,则必须首先或至少提升结果。 所以我需要通过完全匹配来提升结果。
我的解决方案是将标题创建为未标记的字段,因此它只会完全匹配,并使用 edismax 查询提升标题。
还有其他方法吗? 如何索引未标记的字段?所以不用对空格进行标记?
【问题讨论】:
我有这个要求:如果查询文本与特定字段值(标题字段)完全匹配,则必须首先或至少提升结果。 所以我需要通过完全匹配来提升结果。
我的解决方案是将标题创建为未标记的字段,因此它只会完全匹配,并使用 edismax 查询提升标题。
还有其他方法吗? 如何索引未标记的字段?所以不用对空格进行标记?
【问题讨论】:
使用KeywordTokenizer - 这会将字段索引为单个值,但仍允许您附加过滤器 - 例如在存储令牌之前将文本小写。
如果您也不想执行小写,您可以use a string (StrField) field - 字符串字段只有在值完全相同时才会命中。
这通常是为了使精确命中比其他命中具有更大的提升 - 您可以使用 qf 参数来 dismax(您可能已经这样做了)来给出这个列表。使用copyField 将内容索引到具有不同定义的单独字段中。
【讨论】: