我想在文档中搜索“社交网络营销”。全部一起。但是我继续得到结果,单词分开。我有以下DSL查询:
{ "fields": ["title"], "query": { "bool": { "should": [{ "match": { "title": "SEO" } }], "must": [{ "match": { "content": { "query": "Marketing in social networks", "operator": "and" } } }] } } }
我没有包含此短语和标题的文档,但是我也得到了包含短语单词的搜索结果(文档)以进行拆分。我要严格搜索。如果没有任何文档使用此短语,则不要检索任何文档或仅检索具有该标题的文档。为什么 运算符又 不起作用?
您可以使用类型词组尝试以下方法吗?看到这里说,
查询首先分析查询字符串以生成术语列表。然后,它搜索所有术语,但仅将包含所有搜索术语的文档相对于彼此放置在相同的位置
{ "fields": ["title"], "query": { "bool": { "should": [{ "match": { "title": "SEO" } }], "must": [{ "match": { "content": { "query": "Marketing in social networks", "type": "phrase" } } }] } } }
PS:我还没有尝试过。