gpt4 book ai didi

search - ElasticSearch如何对过滤查询(而非文本查询)进行排名?

转载 作者:行者123 更新时间:2023-12-02 22:51:29 25 4
gpt4 key购买 nike

我知道ElasticSearch使用诸如Lucene的relevance ranking algorithms之类的tf/idf, length normalization and couple of more algorithms对应用于文本字段(即在“标题”和“正文”字段中搜索单词“medical”和“journal”的单词)进行排名。

我的问题是ElasticSearch如何对过滤器或范围查询(即age = 25,或weight> 60)进行排名和检索?

我知道这些类型的查询只是根据条件过滤文档。但是可以说我有200个文档,它们的年龄字段值为25。将检索哪个文档作为前10个结果?

ElasticSearch是否按索引它们的顺序检索它们?

最佳答案

从Elasticsearch文档中:

Filters:通常,应使用过滤器代替查询:

  • 用于二进制是/否搜索
  • 用于查询精确值

  • Queries:通常,应使用查询代替过滤器:
  • 用于全文搜索
  • ,结果取决于相关性分数

  • 因此,在运行“年龄= 25,或体重> 60”之类的搜索时,您应该使用过滤器。

    但是,- 过滤器不会影响评分-即,如果仅使用过滤器,则搜索结果的得分都相同。

    有一个 range query-这是一个会影响得分的查询,我想它会根据诸如文档时间戳(最近的得分更高)之类的文档对文档进行评分。

    您需要进一步研究 documentation并深入研究Lucene文档,以准确了解文档获得评分的方式和原因-但如上所述,使用不影响评分的过滤器可能会更好。

    关于search - ElasticSearch如何对过滤查询(而非文本查询)进行排名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27508176/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com