У меня есть некоторые функции поиска внутри моего приложения Ionic 2, для которых требуется возможность добавлять фильтры к поиску в дополнение к строке поиска. У меня работает часть строки поиска, но я не уверен, как передать массив значений для проверки на соответствие определенному массиву в моем индексе Algolia.
Вот моя функция:
searchForUsers(filters?) {
let options = {
attributesToHighlight: ['display_name', 'instruments'],
highlightPreTag: '<span class="highlighted">',
highlightPostTag: '</span>',
attributesToRetrieve: [
"_geoloc",
"display_name",
"genres",
"instruments",
"objectID",
"playing_level",
"profile_photo",
],
};
// If there are any filters enabled?
if(filters) {
options['aroundLatLng'] = `${this.geoloc.lat},${this.geoloc.lng}`;
options['aroundRadius'] = this._utilities.milesToMeters(this.distance);
}
this.usersIndex.search(this.searchTerm, options)
.then((data) => {
this.results = data.hits;
})
.catch((error) => {
console.log(error);
});
}
Если бы я хотел добавить следующие фильтры к моему поиску, как бы я это сделал?
["Blues", "Rock", "Alternative"]
// ‹-- Они будут проверять против genres
в Алголии. ["Guitar", "Drums", "Piano"]
// ‹-- Они будут проверять против instruments
в Алголии.
^ Эти два массива будут дополнительными фильтрами, которые будут ограничивать возвращаемые результаты, как вы видите в тысячах различных компонентов поиска. Хотя я не совсем могу в этом разобраться. Есть идеи?
Заранее спасибо!