【问题标题】:List items is some indices first in Elasticsearch search results列表项是 Elasticsearch 搜索结果中的一些索引
【发布时间】:2016-12-24 23:41:43
【问题描述】:

我正在抓取几个网站并重新列出他们的产品,每个网站在 Elasticsearch 中都有自己的索引。有些网站有联属网络营销计划,我想在我的搜索结果中首先列出这些。

有没有办法让我“提升”某个索引的结果?

我是否应该在抓取时将字段 hasAffiliate: true 写入 ES,然后 boosting the query clauses 具有该值?还是有更好的办法?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    使用boost 可能难以保证它们首先出现在搜索中。根据官方指南:

    实际上,没有简单的公式来决定“正确” 提升特定查询子句的值。这是一个问题 试一试。请记住,提升只是因素之一 参与相关性得分

    https://www.elastic.co/guide/en/elasticsearch/guide/current/query-time-boosting.html

    这取决于您正在执行的查询类型,但在这里您还有其他几个选项:

    • 带有权重的score function:可能是更可预测的选择。

    • 只需使用sort by hasAffiliate(最简单的一个)。 注意:不确定是否可以按布尔字段排序,在这种情况下,您可以将 hasAffiliate 映射设置为整数 byte(最小的一个),当为 true 时将其设置为 1

    【讨论】:

    • 在搜索完成后进行排序也是不错的选择,但在较低级别进行这项工作会很酷。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    相关资源
    最近更新 更多