2015-09-01 2 views
0

Я пытаюсь создать запросы, похожие на запросы кибаны, в запросах elasticsearch lucene. То, что я в основном пытаюсь сделать, это сопоставление некоторых фраз. Например; мой вопрос кибаны выглядит так: (+ «anna smith») И ((+ «университет»), (+ «председатель»), (+ «права женщин»)) Он ищет «анна кузнец», как и должен, и один из другие фразы, как следует (в тексте должен быть хотя бы один из них). Я написал запрос для этого, но он дает исключение для исключения elasticsearch: имя ожидаемого поля, но имеет start_object ». Как я могу это решить. Вот мой запрос;Elasticearch Parse Exception для булевых запросов

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

он работал отлично, спасибо за помощь –

Смежные вопросы