Есть ли способ реализовать настраиваемую (кроме индекса / счетчика) сортировку значений фасетов в solr? - PullRequest
0 голосов
/ 05 июня 2018

Предположим, что мы ищем с помощью iphone, и в аспекте бренда мы получаем следующие аспекты: 1) Amzer 2) Apple 3) Araree 4) Casemate 5) DailyObjects

Он основан на алфавитном порядке.Но мы хотим отсортировать фасетные значения на основе индивидуальной оценки каждого бренда.Есть ли какая-либо функция, доступная в фасете solr, которая будет удовлетворять вышеуказанному требованию?

Если у нас есть оценка по значениям каждого фасета бренда, то есть ли способ выполнить фасет в конце solr?

В настоящее время у solr есть только два параметра facet.sort, то есть index и count.Мы хотим включить другой вариант сортировки, кроме индекса и количества.Пожалуйста, предложите.

1 Ответ

0 голосов
/ 06 июня 2018

Поскольку вы говорите об агрегации поля, вы можете сделать это с помощью Facet JSON API :

В приведенном примере выполняется то, о чем вы спрашиваете:

{
  categories:{
    type : terms      // terms facet creates a bucket for each indexed term in the field
    field : cat,
    sort : "x desc",  // can also use sort:{x:desc}
    facet : {
      x : "avg(price)",     // x = average price for each facet bucket
      y : "max(popularity)" // y = max popularity value in each facet bucket
    }
  }
}

Суммирует среднюю цену всех элементов в фасете, а также сортирует по ней - сначала вы получаете категории с наивысшей средней ценой.

Список поддерживаемых функций, которые выможно использовать для агрегирования под фасетами: доступно в справочном руководстве :

  • сумма, сумма (продажи), суммирование числовых значений
  • avg, avg (популярность), среднее числовых значений
  • мин, мин (зарплата), минимальное значение
  • макс, макс (муль (цена, популярность)), максимальное значение
  • уникально, уникально(автор), число уникальных значений
  • hll, hll (автор), распределенная оценка мощности с помощью алгоритма гипер-логарифмического лога
  • процентиль, процентиль (зарплата, 50,75,99,99,9), Процентильные оценки с помощью алгоритма t-digest.При сортировке по этой метрике в качестве значения сортировки используется первый из перечисленных процентилей.
  • сумма, сумма (арендная плата), сумма квадратов поля или функции
  • дисперсия, вариация (аренда),дисперсия числового поля или функции
  • stddev, stddev (арендная плата), стандартное отклонение поля или функции
...