2015-10-02 2 views
1

Я хотел бы иметь возможность автозаполнения частичных слов полные слова, найденные в моих документах и ​​возвращает список слов и количество документов, эти слова встречаются в.Elasticsearch слово автозаполнение с документом считается

Было бы быть здорово, если бы я мог сделать это по существующим результатам запроса. Поэтому, если они набрали «red tr», у меня были бы результаты для всех документов, которые соответствуют красному, а затем слова, такие как грузовик или поезд с их счетами.

ответ

0

Вы правы. Предложения не будут завершаться и давать вам частоту документа в одном и том же режиме.


одно решение:

Performance не будет, как проворный, но, вероятно, все еще приемлемо, если вы выполните следующие действия (не используя Suggesters):

  • запустить size: 0match_all запроса фильтруется с использованием Prefix Filter с префиксом вашего пользователя.
  • В этом же запросе запросите Terms Aggregation по полю shingled в вашем индексе.
  • Используйте результаты агрегирования в качестве предложений по завершению.

Примечание:

  • Смотрите раздел о filtering term agg values для подавления шума. (вам понадобится это, так как по умолчанию результат agg-результата - по убыванию количества документов.)
  • Также обратите внимание, что document counts are approximate по запросу shard_size.
+0

К сожалению, Term Suggestester не выполняет завершение, поэтому он не отвечает потребностям. – Greg

+0

Вы правы. Обновлено мое предложение выше. –

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