Есть ли способ для отдельной установки Алголии игнорировать определенное значение?
У меня есть несколько записей в индексе алоглии, которые в основном выглядят так:
Book Title | Book Author
-----------------------------
The Red Dog | Simon McCowell
<br>
The Blue Dog | Unknown
<br>
The Black Dog | Unknown
<br>
The White Dog | Simon McCowell
Так что в основном по индексу Алголии у меня есть особая настройка атрибута "автор книги". Поэтому, если какое-либо из значений автора книги совпадает, результат будет дублировать результат, так что, например, будет показан только один результат для Саймона МакКауэлла. Однако, если существует много книг, автор которых неизвестен, очевидно, что эти книги не обязательно имеют один и тот же порядок, поэтому я не хочу удалять результаты, в которых есть книги со значением "Неизвестно" для атрибута "автор книги". Есть ли способ или параметр, где algolia может игнорировать различные параметры для определенного значения атрибута?
Заранее спасибо!
1 ответ
Невозможно предотвратить дедупликацию для определенного значения, однако Algolia не выполняет дедупликацию, если отдельный атрибут отсутствует или null
,
Поэтому, если вы форматируете данные из вашего примера как:
[
{
"objectID": "1",
"author": "Simon McCowell",
"title": "The Red Dog"
},
{
"objectID": "2",
"author": null,
"title": "The Blue Dog"
},
{
"objectID": "3",
"author": null,
"title": "The Black Dog"
},
{
"objectID": "4",
"author": "Simon McCowell",
"title": "The White Dog"
}
]
... затем запросить индекс с distinct=1
даст:
{
"exhaustiveNbHits": false,
"hits": [
{
"author": null,
"objectID": "3",
"title": "The Black Dog"
},
{
"author": null,
"objectID": "2",
"title": "The Blue Dog"
},
{
"author": "Simon McCowell",
"objectID": "4",
"title": "The White Dog"
}
],
"hitsPerPage": 20,
"nbHits": 3,
"nbPages": 1,
"page": 0,
"params": "distinct=1&query=",
"processingTimeMS": 1,
"query": ""
}
... это то, что вы хотите, насколько я понял.