2016-03-24 4 views
0

У меня есть документы, которые содержат много полей, которые являются списками значений.
Я хотел бы, чтобы иметь возможность автозаполнения от одного конкретного такого поля в то время, в одном конкретном документе без дублирования данных (как Completion Suggestors)Elasticsearch Autocomplete on Specific field in Specific Document

Например, хотелось бы, чтобы иметь возможность автозаполнения после 3-х символов из значения в поле category документа с id: '7'.

Я попытался реализовать что-то на основе this, но это не похоже на список значений.

ответ

0

Для фильтрации предложений по полю вы можете добавить поля для фильтрации в context.

"category":{ 
     type: "completion", 
     payloads: false, 
     context: { 
      id: { 
        type: "category", 
        path: "id" 
      } 
     } 
    } 

Вы можете индексировать документ как:

POST /myindex/myitem/1 
{ 
    id: 123, 
    category: { 
     input: "my category", 
     context: { 
      id: 123 
     } 
    } 
} 

Минимальная проверка длины должна быть применена на стороне клиента. Предложения ES не предоставляют ничего подобного.

Теперь вы можете предложить на поле category с фильтром на поле id.