如何修复 ElasticSearch 中的 dsl 查询请求,以便所有文档在function_score中都得到提升?

How can I fix a dsl query request in ElasticSearch so that all documents are boosted in the function_score?

提问人:Kirill_Cyber 提问时间:11/9/2023 更新时间:11/9/2023 访问量:25

问:

我有带有结构的 dsl 查询

{
    "query": {
        "function_score": {
            "query": {
                "bool": {
                    "must": {
                        "multi_match": {
                            "query": "TEST QUERY",
                            "type": "best_fields",
                            "fields": [ ....... ],
                            "operator": "and"
                        }
                    }
                }
            },
            "field_value_factor": {
                "field": "SearchTuning.FIELD_WHICH_INCREASE_SCORE",
                "factor": 100,
                "missing": 0
            },
            "boost_mode": "replace"
        }
    }
}

我希望索引中的所有文档,而不仅仅是那些与“TEST QUERY”和“query”部分匹配的文档,都将通过“field_value_factor”进行修改,并且字段为“FIELD_WHICH_INCREASE_SCORE”的文档将获得最高分。

但是,实际上,“hits”数组显示仅接收满足查询部分的文档。“hits”中所有生成的文档的 score = 0.0,并且不存在存在字段“SearchTuning.FIELD_WHICH_INCREASE_SCORE”的文档。

如何更正查询以获得所需的结果?

Elasticsearch 查询DSL

评论


答: 暂无答案