Реализация опережающего ввода в Algolia Search

У меня есть индекс по Алголии, в котором есть такие элементы:

objectID: 1
name:"Universidade Estadual Paulista Júlio de Mesquita Filho"
acronym:"UNESP"
type:"level1"
aliases:[]
edited_by_admin:"1"
orderString:"UniversidadeEst..."

Почти все индексы имеют свойство edited_by_admin со значением "0", и менее чем в половине это свойство имеет значение "1".

Я хотел бы знать, есть ли способ заставить поиск с использованием typeahead выполнять поиск только по элементам, у которых для свойства edited_by_admin установлено значение "1".

Мне это нужно, поскольку пользователи с определенными разрешениями могут выполнять поиск только по элементам с edited_by_admin = 1, в то время как администраторы могут выполнять поиск по всем результатам, и я хотел бы использовать один и тот же индекс для обоих.

Заранее спасибо!


person Ivan Lewaschiw    schedule 18.11.2015    source источник


Ответы (1)


В итоге я нашел ответ сам.

Вы должны установить свойство, которое вы хотите отфильтровать, как фасет в настройках индекса, а затем установить его для ввода следующим образом:

$('...').typeahead(
{
  hint: false,
  minLength: 1
},
{
  source: index.ttAdapter({
    facetFilters: 'edited_by_admin:1',
    hitsPerPage: 100
  }),
  displayKey: 'name',
  templates: {
  ...
  }
});
person Ivan Lewaschiw    schedule 18.11.2015