Elasticsearch查询字符串数组

时间:2014-12-18 21:34:40

标签: elasticsearch

我知道这有效:

{
"query": {

    "query_string": {
        "query": "reading,debating"
    }

}

它搜索所有出现的阅读或辩论。我想知道是否有一种方法,以便我可以插入一个字符串数组而不是逗号分隔的字符串?看起来像这样:

{
"query": {

    "query_string": {
        "query": ["reading","debating"]
    }

}

1 个答案:

答案 0 :(得分:5)

在您的第一个示例中,它是一个QueryString查询,其中elasticsearch内部处理查询理解,默认情况下,逗号是分隔符,这是您的第一个查询的工作方式。

在这种情况下,你可能想要的是由布尔值组合的两个或多个术语查询(如果你想要OR逻辑,则使用“should”,如果你想要AND逻辑,则使用“must”)。

以下是如何从curl执行此操作: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html

如果要在Java中以编程方式使用它,可以使用QueryBuilders构造术语查询和布尔查询