具有模糊性的Elasticsearch多匹配查询

时间:2019-11-13 13:58:46

标签: elasticsearch

我目前正在将ES集群从ES 2.4更新到6.4。我知道还可以使用7.4.2,但是我们正在使用Elasticpress for WordPress插件,该插件最多支持6.4。我知道由于版本之间的巨大差异,我将不得不解决一些问题,但这对我来说太困难了。仅供参考,我不是经常与Elasticsearch合作,所以我不是专家。

当前,我们在全局站点搜索中有一个multi_match查询。看起来像这样:

const query = {
    bool: {
        must: {
            multi_match: {
                query: 'Marketing tips for 2020',
                type: 'phrase',
                fields: [
                    "post_title^3",
                    "post_author.display_name^2.5",
                    "post_meta.co-author_clean^2.5",
                    "terms.post_tag^2",
                    "terms.category^1.5",
                    "post_type^1.5",
                    "post_content^1"
                ],
                fuzziness: 1,
                prefix_length: 2
            }
        }
    }
}

当我现在在6.4中尝试此查询时,我得到:

{
    "error": {
        "root_cause": [
            {
                "type": "parsing_exception",
                "reason": "Fuzziness not allowed for type [phrase]",
                "line": 1,
                "col": 794
            }
        ],
        "type": "parsing_exception",
        "reason": "Fuzziness not allowed for type [phrase]",
        "line": 1,
        "col": 794
    },
    "status": 400
}

错误很明显,我无法在此处所述的短语查询中使用模糊性:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html#type-phrase

我在SO处发现了以下问题:Elasticsearch Fuzzy Phrases

但这不是“ multi_match”查询,而“ multi_match”查询正是我所需要的。至少,我是这样认为的。

0 个答案:

没有答案