Elasticsearch: включить конкретные значения фасетов
asticsearch предоставляет параметр для исключения определенных фасетов из значений фасетов, подобных этому.
"facets" : {
"tag" : {
"terms" : {
"field" : "tag",
"exclude" : ["term1", "term2"]
}
}
}
Есть ли возможность включить определенные аспекты?
Я пытаюсь получить количество граней, которые уже были выбраны пользователем, а также глобальные фасеты. Например. Вы выбрали слово " наука" со счетом 20 (из автозаполнения), я перерассчитываю фасеты, чтобы показать другие слова, которые могут быть выбраны, но слово " наука" не дало бы результатов, так как другие слова из глобальных фасетов насчитывают более 400.
Есть ли какое-то конкретное решение для этой задачи?
Спасибо за помощь
1 ответ
Вы можете использовать сценарии для этого. Скрипт будет запускаться для каждой записи фасета с входной переменной term
который содержит текущее значение. Запись будет включена или не включена в конечный аспект в зависимости от результата сценария. Если он возвращает false, он будет исключен, в противном случае он будет включен.
"facets" : {
"tag" : {
"terms" : {
"field" : "tag",
"script" : "term == 'aaa' ? true : false"
}
}
}