2015-07-10 4 views
3

Я бегу Elasticsearch 1.5.2 и пытается следующий запрос:«подталкивание» не работает «термин» запрос

{ 
    "query": { 
    "filtered": { 
     "filter": { 
     "bool": { 
      "must": [ 
      { 
       "term": { 
       "gender": "male" 
       } 
      } 
      ] 
     } 
     }, 
     "query": { 
     "bool": { 
      "must": [ 
      { 
       "match_all": {} 
      } 
      ], 
      "should": [ 
      { 
       "term": { 
       "top_users": 1, 
       "boost": 2 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
} 

Все это хорошо, пока я не добавить «подталкивание» : 2 к следует -> термин часть. Полный запрос является гораздо более сложным, поэтому мне нужно увеличить, а остальные запросы не имеют никакого значения: ES возвращает ошибку 400, если термина запрос получает BOOST аргумента:

QueryParsingException [[index_name] [_na] запрос неверный, должен начинаться с start_object]

Любые предложения?

ответ

2

Это должно быть like this:

{ 
    "query": { 
    "filtered": { 
     "filter": { 
     "bool": { 
      "must": [ 
      { 
       "term": { 
       "gender": "male" 
       } 
      } 
      ] 
     } 
     }, 
     "query": { 
     "bool": { 
      "must": [ 
      { 
       "match_all": {} 
      } 
      ], 
      "should": [ 
      { 
       "term": { 
       "top_users": { 
        "value": "1", 
        "boost": 2 
       } 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
} 
Смежные вопросы