2015-09-01 50 views
0

我試圖在elasticsearch lucene查詢中創建類似於kibana查詢的查詢。我基本上試圖做的是匹配一些短語。例如;我的kibana查詢如下所示:(+「anna smith」)AND((+「university」),(+「chairman」),(+「women rights」))它搜索「anna smith」是必須的,其他短語應該(應該至少有一個在文本中存在)。我寫了一個查詢來做到這一點,但它給「elasticsearch解析異常:期望的字段名稱,但得到了start_object」。我該如何解決這個問題。這是我的問題;Elasticsearch解析布爾查詢異常

{ 
    "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

您在倒數第二查詢不能在那裏,它需要第一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 
        } 
       } 
       } 
      ] 
      } 
     } 
     ] 
    } 
    } 
} 
+0

它完美的工作中,感謝您的幫助 –