gpt4 book ai didi

Elasticsearch:给长标题更高的分数

转载 作者:行者123 更新时间:2023-12-03 02:16:31 24 4
gpt4 key购买 nike

我有一个 Elasticsearch 数据库,其中所有文档都有 标题 字段并由该字段查询。
默认情况下,Elasticsearch 搜索对短 的文档给出更高的分数标题 .但是,在我的用例中,短标题是无关紧要的。
例如,当我搜索“深度学习”时,第一个结果是

  • “深度学习”
  • 《机器学习与深度学习》
  • “带内存的半监督深度学习”

  • 我希望标题为“带内存的半监督深度学习”的文档出现在标题为“深度学习”的文档之前。
    是否有任何解决方案可以在不更改映射的情况下实现这一目标?
    谢谢

    最佳答案

    最好的方法是计算内容长度和摄取时间,将其保存在一个字段中并将其与函数分数查询一起使用。

    {
    "query": {
    "function_score": {
    "query": {
    "match": { "title": "elasticsearch" }
    },
    "script_score": {
    "script": {
    "source": "doc['title_length'].value * _score"
    }
    }
    }
    }
    }
    或者,如果您在此字段上有关键字映射,则可以使用使用字段大小的脚本分数查询。
    如果没有,您将必须启用其上的字段数据。但它非常昂贵,不推荐。
    https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-script-score-query.html
    GET /_search
    {
    "query": {
    "script_score": {
    "query": {
    "match": { "title": "elasticsearch" }
    },
    "script": {
    "source": "doc['title'].value.length() * _score"
    }
    }
    }
    }

    关于Elasticsearch:给长标题更高的分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63472402/

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