任何人都可以解释 solr 中 Query Elevation 和 Boost Query 之间的区别。我找不到这两种助推机制的缺点和优点。非常感谢。
1 回答
提升查询
提升查询会影响计算的分数 - 未获得大分数的文档可能会得到提升,但与其他项目相比,这种提升可能仍不足以抵消低分。即提升查询将增加文档的分数 - 尝试根据某些标准使其更相关。即使应用了提升,它也可能不是(而且您可能不希望它)是最佳结果。
一个例子是,如果你想给任何带有标签的文档赋予IMPORTANT
更高的权重,你可以为它应用一个提升查询 - bq=label:IMPORTANT
。
但是,如果您在主题字段中搜索“一封非常好的电子邮件”,并且您有一封电子邮件实际上是该主题,并且您还有另一封电子邮件只有“电子邮件”作为其主题的一部分 - 但它有被标记为重要,另一封电子邮件被标记为重要的事实可能不足以在与主题完全匹配的电子邮件之前显示它。您必须调整用于提升的值(即label:IMPORTANT^<weight>
)以获得最适合您的确切用例的结果。
查询海拔
查询提升是一种说法,“如果有人搜索这个,这个文档应该在顶部”(或者根本不应该包含这个文档)。即,这些是基于预定规则集的搜索结果的手动调整。手册中的示例是一个很好的说明,MA147LL/A
如果有人搜索,则决定将文档显示在顶部ipod
。
正如您所看到的 - “已确定在顶部”与“以某种方式影响分数”不同 - 它只是硬编码为顶部。如果您搜索此内容,您应该会在顶部看到 THIS。或者您可以应用该exclude
属性,该属性将从返回的文档集中删除该文档(即,您确定在搜索时您永远不想看到特定文档ipod
- 但只有在有人搜索该文档时)。
查询结果组件通常通过旧的搜索引擎如何显示“赞助结果”出现在常规搜索结果的顶部来说明,其中搜索结果中的某些文档只是显示在其他任何内容之前。
这有时被称为“赞助搜索”、“编辑提升”或“最佳选择”。该组件将用户查询文本与配置的顶级结果映射匹配。文本可以是任何字符串或非字符串 ID,只要它已编入索引即可。尽管此组件可以与任何 QueryParser 一起使用,但与 DisMax 或 eDisMax 一起使用是最有意义的。