我知道这有效:
{ "query": { "query_string": { "query": "reading,debating" } }
它搜索所有出现阅读或辩论的词语.我想知道是否有一种方法,以便我可以插入一个字符串数组而不是逗号分隔的字符串?要看起来像这样:
{ "query": { "query_string": { "query": ["reading","debating"] } }
hexabunny.. 5
在您的第一个示例中,它是一个QueryString查询,其中elasticsearch内部处理查询理解,默认情况下,逗号是分隔符,这是您的第一个查询的工作方式.
在这种情况下,你可能想要的是由布尔值组合的两个或多个术语查询(如果你想要OR逻辑,则使用"should",如果你想要AND逻辑,则使用"must")查询.
以下是如何通过curl实现的:http: //www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html
如果要在Java中以编程方式使用它,可以使用QueryBuilders构造术语查询和布尔查询
在您的第一个示例中,它是一个QueryString查询,其中elasticsearch内部处理查询理解,默认情况下,逗号是分隔符,这是您的第一个查询的工作方式.
在这种情况下,你可能想要的是由布尔值组合的两个或多个术语查询(如果你想要OR逻辑,则使用"should",如果你想要AND逻辑,则使用"must")查询.
以下是如何通过curl实现的:http: //www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html
如果要在Java中以编程方式使用它,可以使用QueryBuilders构造术语查询和布尔查询