2016-12-27 18 views
3

Я использовал этот запросУпругие поиск не работает, как ожидалось

'body' => [ 
    'query' => [ 
     'bool' => [ 
      'should' => [ 
       ['match' => ['title'=> $q]], 
       ['match' => ['year'=> $q]], 
       ['match' => ['case_type'=> $q]], 
       ['match' => ['body'=> $q]], 
       ['match' => ['petition_no'=> $q]], 
       ['match' => ['keywords'=> $q]] 
      ] 
     ] 
    ] 
] 

, и я не знаю, почему я не получаю правильные результаты. В докере ELASTICSEARCH log это показывает это [WARN] [o.e.d.i.m.StringFieldMapper $ TypeParser] Поле [string] устарело, используйте [текст] или [ключевое слово] вместо [title] Может ли кто-нибудь помочь?

ответ

0

Если вы работаете на версии ES, которая выше 5.x, то string тип данных устарела FYI:

Поле строка не поддерживается для индексов, созданных в 5.x в пользу поля текста и ключевых слов.

с оригинала source. Возможно, вам придется создавать поля, которые состоят из типа text или keyword вместо string в вашем сопоставлении.

+0

Итак, что мне теперь делать? должен ли я сохранить этот код в целости и изменить файл json или что? –

+0

Вы должны изменить тип данных 'string' в полях, которые у вас есть. Да, это так. – Kulasangar

+0

если (Исеть ($ _ POST [ 'название'] {$ название = $ _POST [ 'название']; $ индексируется индекс = $ client-> ([ \t \t \t \t 'индекс' => 'дела', \t \t \t \t 'типа' => 'случаи', \t \t \t \t 'тело' => [ \t \t \t \t 'название' => $ название,]] } Я добавляю поля как это так, как я могу изменить данные t ype to text? –

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

  • Нет связанных вопросов^_^