2016-03-24 4 views
1

Почему при запросе query_string в поле регистр нечувствителен к регистру, а подстановочный запрос чувствителен к регистру? Я бы подумал, что двое будут вести себя одинаково.ElasticSearch: почему регистр query_string нечувствителен к регистру и подстановочный знак?

Этот query_string запрос возвращает результаты

{ 
    "query": { 
    "bool" : { 
     "must" : [ { 
     "query_string" : { 
      "query" : "name:*HILTON*" 
     } 
     } ] 
    } 
    } 
} 

Где, как это подстановочные запрос не

{ 
    "query": { 
    "bool" : { 
     "must" : [{ 
     "wildcard" : { 
      "name" : "*HILTON*" 
     } 
     } ] 
    } 
    } 
} 

ответ

4

Это потому, что Wild card query работает для not analyzed полей.

Согласно документации:

Префикса, подстановочные и регулярные выражения запросов работают на условиях. Если вы используете их для запроса анализируемого поля, они будут рассматривать каждый термин в поле, а не поле в целом.

Wild card query соответствует документам, которые имеют поля, соответствующие выражению подстановки (не анализировано).

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