小编典典

如何使用ElasticSearch在字符串字段中搜索确切短语?

elasticsearch

我想在文档中搜索“社交网络营销”。全部一起。但是我继续得到结果,单词分开。我有以下DSL查询:

{
    "fields": ["title"], 
    "query": {
        "bool": {
            "should": [{
                "match": {
                    "title": "SEO"
                }
            }],
            "must": [{
                "match": {
                    "content": {
                        "query": "Marketing in social networks",
                        "operator": "and"
                    }
                }
            }]
        }
    }
}

我没有包含此短语和标题的文档,但是我也得到了包含短语单词的搜索结果(文档)以进行拆分。我要严格搜索。如果没有任何文档使用此短语,则不要检索任何文档或仅检索具有该标题的文档。为什么
运算符又 不起作用?


阅读 377

收藏
2020-06-22

共1个答案

小编典典

您可以使用类型词组尝试以下方法吗?看到这里说,

查询首先分析查询字符串以生成术语列表。然后,它搜索所有术语,但仅将包含所有搜索术语的文档相对于彼此放置在相同的位置

{
    "fields": ["title"], 
    "query": {
        "bool": {
            "should": [{
                "match": {
                    "title": "SEO"
                }
            }],
            "must": [{
                "match": {
                    "content": {
                        "query": "Marketing in social networks",
                        "type":  "phrase"
                    }
                }
            }]
        }
    }
}

PS:我还没有尝试过。

2020-06-22