组合查询(但不组合字段或嵌套查询)

问题描述 投票:0回答:1

我有一个索引, 其中有一个文本字段,比如说“内容” 我还有另一个字段,比如说“field1”

我想要的是: 内容包含“searchterm”且 field1 恰好是“foo”或“bar”的文档。

simple_query_string 在搜索文档方面表现出色。 但我如何实现这个组合呢?这可能吗?

布尔查询无法正常用于文本搜索。(或者我理解它完全错误)

我需要 simple_query_string 运算符(查询字符串本身的运算符

elasticsearch
1个回答
0
投票

找到了答案。

问题是,我需要 simple_search_query 运算符,因此布尔查询不太适合我的用例。

因此,可以说“query_string”中有一个“手动 simple_search_query 运算符”。

这是我的解决方案:

GET test_index/_search
{
    "query" : {
    "query_string" : {
        "query" : "content:(\"exact search string with spaces\") AND field1:(\"foo\" OR \"bar\")"
        }
    }
}

但是现在,我需要一个后端翻译。因为我希望我的用户通过减号来否定查询。 (例如:foo bar -tar)foo 和/或 bar 但不是 tar

有没有更好的实现方式?

© www.soinside.com 2019 - 2024. All rights reserved.