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"
        }
    }
}
Другие вопросы по тегам