Solr-фильтр на агрегации Json Facet

Немного информации об этом ключевом слове

Давайте перечислим ключевое слово this на консоль в глобальной области без кода, но

console.log(this)

В Client / Browser this ] - глобальный объект, который является window

console.log(this === window) // true

и

В ключевом слове Server / Node / Javascript this также является глобальным объектом, который является module.exports

console.log(this === module.exports) // true
console.log(this === exports) // true

Имейте в виду, что exports - это просто ссылка на module.exports

0
задан Mikev 4 March 2019 в 12:04
поделиться

1 ответ

Ну, мы сталкивались с подобной задачей и раньше, и я бы сказал, что Solr не может фильтровать вычисленные значения. Либо вы можете получить весь фасет, установив предел равным -1, и тогда будет некоторая оболочка (WEB API), которую вам нужно будет написать поверх вашего поискового приложения, которая отфильтрует список фасетов.

json.facet={cty:{type:terms,field:country,limit:-1,facet:{sum_value:”sum(population)”}}}

Или вы можете предварительно рассчитать сумму населения для каждой страны перед индексацией. Посмотрите на таблицу ниже.

| Страна | Население | Total_Population |

| C1 | 12 | 25 |
| C1 | 13 | 25 |
| С2 | 14 | 49 |
| С2 | 35 | 49 |

Позже вы можете напрямую фильтровать поле Total_Population с помощью фильтра запросов. Кроме того, вы сэкономите много времени, не агрегируя в реальном времени.

0
ответ дан Sanjay Dutt 4 March 2019 в 12:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: