【问题标题】:SOLR boosting based on degree of match基于匹配度的 SOLR 提升
【发布时间】:2018-01-30 13:17:56
【问题描述】:

如何提升 solr 文档以更好地匹配特定领域的文档?

例如,我有一个类似Assault M16 的文档。

我有 2 个字段,每个字段分别索引文本 NormalText: assault m16NormalTextNoSpaces: assaultm16

现在我搜索 Assault M 16 Gun 。 结果,我会得到一堆包含“assault”、“m”、“16”、“Gun”等词的文件。

问题是我想提升与 NormalTextNoSpaces 字段完全匹配的所有文档,因为它比其他字段更匹配搜索文本。

这是因为普通文本字段存储文本时“M”和“16”之间没有空格。因此,该匹配不会像在 NoSpace 字段中那样相关。

我想要的是某种功能,它可以告诉我匹配是否在一个文件或另一个文件上更好,以便我可以相应地提升文档。

【问题讨论】:

    标签: solr lucene


    【解决方案1】:

    如果您使用 (e)dismax 查询解析器,您可以通过 qf 参数为每​​个字段赋予权重:q=Assault M 16 Gun&qf=NormalTextNoSpaces^100 NormalText 将给出 NormalTextNoSpaces 中的匹配项的权重是 @987654324 中的匹配项的 100 倍@。

    必须针对每个用例以及您希望如何确定命中的优先级来调整确切的权重。

    【讨论】:

    • 事情是我想有条件地设置提升,这样当普通文本上的匹配小于 NoSpace 匹配时,它会给 NoSpace 字段一个更大的提升/
    • 你必须举个例子,但这听起来就像发生了什么? 除非有匹配项,否则不会应用提升。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    相关资源
    最近更新 更多