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

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

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

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

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

1 ответ

Решение

Поскольку вы говорите об агрегации поля, вы можете сделать это с помощью 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 (популярность), среднее числовых значений
  • мин, мин (зарплата), минимальное значение
  • max, max(mul(цена, популярность)), максимальное значение
  • уникальный, уникальный (автор), количество уникальных значений
  • hll, hll (автор), распределенная оценка мощности с помощью алгоритма hyper-log-log
  • процентиль, процентиль (оклад,50,75,99,99,9), процентильные оценки с помощью алгоритма t-digest. При сортировке по этой метрике в качестве значения сортировки используется первый перечисленный процентиль.
  • сумма, сумма (аренда), сумма квадратов поля или функции
  • дисперсия, вариация (аренда), дисперсия числового поля или функции
  • стандартное отклонение поля или функции
Другие вопросы по тегам