2017-02-18 11 views
1

Я был следующим примером для мгновенного поиска Algolia по адресу https://www.algolia.com/doc/guides/search/instant-search/ (JavaScript версии)Algolia Instant Search - как не выполнять первоначальный поиск?

Я понимаю, что для многих сценариев использования (как в примере), имеет смысл для сценария для запуска своего первоначального поиска после PageLoad и отображать результаты (в основном все результаты). В моем случае, хотя я бы не хотел этого первоначального поиска. Как я могу это достичь?

Благодаря

ответ

3

Вы можете передать параметр searchFunction в instantsearch инициализаторе, который будет перехватывать каждый запрос и позволит вам решить, следует ли выполнять его или нет.

Вот пример, взятый из этого Github issue. Поиск не выполняется, если запрос пуст, как и при загрузке страницы.

var search = instantsearch({ 
    searchFunction: function(helper) { 
    if (helper.state.query === '') { 
     return; 
    } 

    helper.search(); 
    } 
}); 

Если у вас есть своя логика, когда поиск должен/не должен выполняться, вы можете использовать его здесь. Дополнительную информацию см. В разделе Usage tab раздела Инициализация документов.

+0

Отлично! Спасибо – user6122500

+0

Хорошо, но при поиске термина, а затем удаляя его, поисковые запросы остаются открытыми. Этот комментарий делает трюк: https://github.com/algolia/instantsearch.js/issues/4#issuecomment-199321325 – Alcalyn

+0

Чтобы закрыть поиск, когда поисковый запрос удален с обратным пространством, я заполнил здесь ответ: https: // github.com/algolia/instantsearch.js/issues/4#issuecomment-343935278 – Alcalyn