布尔查询的Elasticsearch Parse Exception

时间:2015-09-01 08:30:01

标签: elasticsearch lucene kibana phrase

我尝试在elasticsearch lucene查询中创建类似于kibana查询的查询。我基本上想要做的是匹配一些短语。例如;我的kibana查询看起来像这样:(+" anna smith")和((+"大学"),(+"主席"),(+" ;女性权利"))它搜索" anna smith"必须和其他一个短语应该(应该至少有一个短语存在于文本中)。我写了一个查询来执行此操作,但它提供了" elasticsearch解析异常:期望的字段名称但得到了start_object"。我该怎么解决这个问题。这是我的询问;

{
    "query": {
        "bool": {
            "must": {
                "match": {  
                    "text": {
                        "query":    "anna smith",
                        "operator": "and"
                    }
                }
              }
            },
             "query": {
                "bool": {
                    "must": [
                    {
                    "bool": {
                    "should": [
                        { 
                            "match": {
                            "text": {
                                "query": "university",
                                "boost": 2 
                            }
                        }

                        },
                        { 
                            "match": {
                            "text": {
                                "query": "chairman",
                                "boost": 2 
                                    }
                                  }
                        }
            ]
        }
    }]
}}}}

1 个答案:

答案 0 :(得分:1)

您在底部的第二个查询不能存在,它需要位于第一个bool/must之内

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "text": {
              "query": "anna smith",
              "operator": "and"
            }
          }
        },
        {
          "bool": {
            "should": [
              {
                "match": {
                  "text": {
                    "query": "university",
                    "boost": 2
                  }
                }
              },
              {
                "match": {
                  "text": {
                    "query": "chairman",
                    "boost": 2
                  }
                }
              }
            ]
          }
        }
      ]
    }
  }
}