2015-10-22 5 views
1

Я новичок в поиске elastics и не знаю, в чем разница между этими двумя запросами. Это просто время обработки или это принципиально разные запросы.Разница между использованием нескольких фильтров и указанием нескольких фильтров в одном предложении «и»

1) filters : { and: [{ 
    "bool" : { 
    "should" : { 
     "term" : { 
     "Code" : "1510" 
     } 
    } 
    } 
} 
, 
{ 
    "bool" : { 
    "should" : { 
     "term" : { 
     "Id" : "Id3" 
     } 
    } 
    } 
}] } 


2) filter: [{ 
    "bool" : { 
    "must" : [{ 
     "term" : { 
     "Code" : "1510" 
     }, 
    "term":{ 
     "Id":"Id3"}] 
    } 
    } 
}] 
+0

выглядит как у вас есть опечатка первый запрос вы собираетесь использовать 'and' вместо' filters' ? – keety

+0

@keety Да, верно, синтаксис может быть неправильным, но я просто пытаюсь понять, существует ли какая-либо разница между применением двух разных фильтров и их объединением «и» в одном фильтре. благодаря – happa

ответ

0

Запросы в OP логически эквивалентны.

Однако, как говорится, я нахожу 2) быть интуитивным, читабельным и простым.

Вообще по Perfomance причины bool фильтров предпочтительнее and хотя для запросов в вопросе я сомневаюсь, эта разница ощутима.

Также для and фильтра запроса в 1) лучше записать следующим образом:

"filter": { 
     "and": [ 
     { 
      "term": { 
       "Code": "1510" 
      } 
     }, 
     { 
      "term": { 
       "Id": "Id3" 
      } 
     } 
     ] 
    } 
Смежные вопросы