【发布时间】:2020-05-05 18:45:28
【问题描述】:
我正在使用 Solr 5.2,可能很快会升级到 8.2,并使用 edismax 在选定字段中搜索字符串。一些查询字段使用 ngram,因此包含搜索字符串的结果将显示在搜索中。我想让以搜索词开头的匹配文档显示在搜索结果的开头。
我的第一次尝试是将字符串字段和文本 ngram 字段都放在 qf 中,然后搜索这两个字符串并从使用 boost 开始。例如,如果搜索字符串是“lorem”,我会使用:
q=(lorem*) 或 (lorem)
我也会对字符串字段使用助推器。但是,ngram 匹配似乎得分更多,因此以搜索词开头的匹配并不总是首先出现。
如何在搜索字符串开头的搜索词首先显示匹配项?
【问题讨论】:
-
所以当整个单词匹配时,应该有一个提升或者单词应该被词干还是只是第一个单词?
-
这是短字段。 Boost 需要用于字段以该值开头时。例如,如果搜索“ABC”,则“123ABC”和“ABC123”都应该出现,但“ABC123”应该在最前面。