2016-12-26 3 views
5

, когда я хочу, чтобы индексировать документ в elasticsearch эта проблема происходит:Выходное поле автозаполнения предложения

message [MapperParsingException[failed to parse]; nested: IllegalArgumentException[unknown field name [output], must be one of [input, weight, contexts]];]

Я знаю, что поле вывода удалены из elasticsearch в 5-й версии, но почему? и что я должен сделать для получения единого результата для ввода?

+0

Я обнаружил, что исходное значение связано с полем _source, которое возвращается с предложением, но на самом деле это не решение, чтобы использовать его оттуда, потому что ключ и структура изменяются на основе исходного объекта, из которого он происходит. –

ответ

0

Упругие упоминает следующее

В документе предложения являются ориентированным на метаданные предложения (например, выход) должны теперь быть определены как поле в документе. Поддержка для указания вывода при вводе указателей предложений была удалена. В настоящее время текст заявки на ввод предложений - это всегда неанализируемое значение ввода предложения (то же самое, что не указывать вывод при указании предложений в индексах до 5.0).

Source

Update

Я был в состоянии получить один выход из нескольких входов в ES 5.1.1. Вы можете найти ответ here

1

output поле удалено из ElasticSearch в версии 5, теперь _source подано с предложением. Пример показан ниже.

Mapping

{ 
    "user": { 
     "properties": { 
      "name": { 
       "type": "string" 
      }, 
      "suggest": { 
       "type": "completion", 
       "analyzer": "simple", 
       "search_analyzer": "simple" 
      } 
     } 
    } 
} 

данных

{ 
    "id": "123", 
    "name": "Abc", 
    "suggest": 
    { 
     "input": "Abc::123" 
    }, 
    "output": "Abc::123" 
} 

Запрос

POST - http://localhost:9200/user */_ предложить довольно

0123?
{ 
"type-suggest": { 
    "text": "Abc", 
    "completion": { 
     "field": "suggest" 
    } 
    } 
}