elasticsearch - Elasticsearch重新评估所有结果,而忽略了基本得分

标签 elasticsearch

我正在尝试使用以下查询对结果进行评分:

POST /archive/item/_search
{
    "query": {
        "multi_match": {
            "fields": ["title", "description"],
            "query": "1 złoty",
            "operator": "and"
        }
    },
    "rescore": {
        "window_size": 50,
        "query": {
            "rescore_query": {
                "multi_match": {
                    "type": "phrase",
                    "fields": ["title", "description"],
                    "query": "1 złoty",
                    "slop": 10
                }
            },
            "query_weight": 0,
            "rescore_query_weight": 1
        }
    }
}

我之所以这样做,是因为我主要想按接近度得分。
另外,我想忽略源字段长度对分数的影响。
我这样做对吗?如果没有,这里的最佳做法是什么?

还有第二个问题。为什么仍然需要window_size
我只想要最好的结果。
主要查询atcs就像过滤器一样,因此它返回的所有结果都是相关的。
我质疑"window_size": "all"这样的东西会很完美,但我在文档中找不到任何东西。

最佳答案

为了回答您的第二个问题,之所以需要它,是因为它只为获得最佳结果而设计。基本上,这是一个成本问题-假设次级算法的成本更高,因此只能将其运行在最高结果上。这里有更多关于此的讨论:

https://github.com/elasticsearch/elasticsearch/issues/2640

和这里:

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-rescore.html

我个人认为“全部”选项是个好主意,也许您应该在github上发布一个问题?

关于elasticsearch - Elasticsearch重新评估所有结果,而忽略了基本得分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24776706/

相关文章:

php - Elasticsearch\RuntimeException:无法进行JSON编码:第33行的文件/Elasticsearch/Serializers/SmartSerializer.php中的5

elasticsearch - ElasticSearch是否有主动提琴?

python - 如何从弹性滚动结果更快地建立 Pandas 数据框?

elasticsearch - 启动多个节点不分配副本分片

ruby - 将 `limit` `offset`选项传递给searchkick高级搜索主体对象

apache-spark - Glue 上的 Spark 无法连接到 AWS/ElasticSearch

elasticsearch - elasticsearch获取_version> 1的所有文档

elasticsearch - 在 NEST/Elasticsearch.net 中使用 azure 事件目录

ssl - Elasticsearch::community 版本 [6.4.2] 安全

elasticsearch - 在 ElasticSearch (Kibana) 中执行部分字符串匹配