Обработка данных facet.pivot в Solr/Python

Я запрашиваю ядро ​​Solr с этим URL:

select?q=*:*&rows=0&facet=on&facet.limit=-1&facet.mincount=0&facet.pivot=brand,series,sub_series

Использование функции Facet Pivot

Частичный ответ JSON, обратите внимание на правильное вложение полей:

"facet_pivot":{
  "brand,series,sub_series":[{
      "field":"brand",
      "value":"A. Lange & Sohne",
      "count":69,
      "pivot":[{
          "field":"series",
          "value":"1815 Manual Wind",
          "count":1},
        {
          "field":"series",
          "value":"1815 Up Down",
          "count":1},
        {
          "field":"series",
          "value":"Datograph",
          "count":3,
          "pivot":[{
              "field":"sub_series",
              "value":"Perpetual",
              "count":2},
            {
              "field":"sub_series",
              "value":"Up Down",
              "count":1}]},

Теперь я повторяю тот же запрос с pySolr:

def nested_navbar():
    result = solr.search('*:*', **{
        'rows': '0',
        'facet': 'on',
        'facet.limit': '-1',
        'facet.mincount': '0',
        'facet.pivot': ['brand_exact', 'series_exact', 'sub_series_exact']
        })

    result = result.facets['facet_pivot']
    return result

По какой-то причине, когда я печатаю данные (шаблоны pdb или Django), словарь в результате имеет 3 разных массива для брендов, серий и под_серий, без первоначальной вложенности. Другими словами, поле опоры исчезло.

1 ответ

Решение

По MatsLindh, я настроил ведение журнала для pySolr:

  1. добавлять export DEBUG_PYSOLR='true' до терминала.
  2. Запустите сервер и проверьте журнал.

Вот ссылка, сгенерированная pySolr:

/?q=%2A%3A%2A&rows=0&facet=on&facet.limit=-1&facet.mincount=0&facet.pivot=brand&facet.pivot=series&facet.pivot=sub_series&wt=json

Проблема в том, что pySolr создавал новый facet.pivot поле для каждого элемента в массиве ("brand", "series" и "sub_series").

Мой новый код, который решает проблему и генерирует единый facet.pivot поле:

'facet.pivot': 'brand,series,sub_series'
Другие вопросы по тегам