Отображение нескольких полей одного и того же тега Solr в Blacklight - PullRequest
0 голосов
/ 23 октября 2019

У меня есть индекс solr с вложенными полями в виде

{ record: [
    { tag1: foo, tag2: bar }
  ]
}

К сожалению, невозможно изменить конфигурацию solr.

В Blacklight я хочу отобразить foo иbar отдельно под разными полями, например так:

Tag1: foo
Tag2: bar

Я думал, что мог бы просто использовать config.add_index_field с вспомогательным методом для достижения этого:

catalog_controller.rb
config.add_index_field 'record', label: 'Tag1', helper_method: :get_tag1
config.add_index_field 'record', label: 'Tag2', helper_method: :get_tag2
application_helper.rb
  def get_tag1(options={})
    options[:value][0]['tag1']
  end
  def get_tag2(options={})
    options[:value][0]['tag2']
  end

Тем не менее, при этом я получаю ошибку A index_field with the key record already exists.

По-видимому, я могу добавить только одно индексное поле на поле solr за раз. Как я могу превратить одно такое поле в несколько полей в Blacklight?

1 Ответ

0 голосов
/ 23 октября 2019

Нашел ответ. Мне просто нужно добавить переменную поля, чтобы указать на тот же тег, чтобы я мог изменить исходную переменную.

catalog_controller.rb
config.add_index_field 'record1', label: 'Tag1', field: 'record', helper_method: :get_tag1
config.add_index_field 'record2', label: 'Tag2', field: 'record', helper_method: :get_tag2
...