2015-08-28 2 views
0

Я пытаюсь отфильтровать некоторые фразы в соответствии с диапазоном в текстовом поле. У меня есть код, но он не работает. Как я могу это исправить? Я также хочу добавить необязательный параметр к запросу, как я это делаю?elasksearch parse exception Предполагаемое имя поля

{ 
    "query": { 
    "filtered": { 
     "filter": { 
     "range": { "date": {"gt": "2015-08-27", 
"lte": "2015-08-28"}} 
     } 
    }, 
    "query":{ 
    "filtered" : { 
     "filter" : { 
      "terms" : { "text" : ["has", "parti"]} 
     } 
    } 
    } 
}} 

ответ

0

Вам просто нужно, чтобы переместить ваш terms фильтр в верхний фильтр (т.е. нет необходимости в двух filtered запросов

{ 
    "query": { 
    "filtered": { 
     "filter": { 
     "bool": { 
      "must": [ 
      { 
       "terms": { 
       "text": [ 
        "has", 
        "parti" 
       ] 
       } 
      }, 
      { 
       "range": { 
       "date": { 
        "gt": "2015-08-27", 
        "lte": "2015-08-28" 
       } 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
} 
+0

, который действительно работает спасибо я хочу добавить фразовым, например...; обязательные условия должны быть найдены как фраза типа «имеет парти». Как я могу сделать thaT? –

+0

Мы должны решить это в другом вопросе, чтобы не втиснуть два разных предмета в один вопрос. – Val

+0

Okey спасибо за помощь –

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