Запретить Solr создавать поля копирования по умолчанию - PullRequest
2 голосов
/ 10 апреля 2019

Когда я добавляю любое поле в Solr и затем индексирую некоторые данные, Solr создает поле для копирования для этого поля.

Например, я добавил поле с именем app_id, и после индексации данные оба в app_id и другое поле с именем app_id_str.

Есть ли способ предотвратить создание этих полей копирования?

Ответы [ 2 ]

2 голосов
/ 10 апреля 2019

Я предполагаю, что вы используете достаточно новую версию Solr.(У меня недостаточно репутации, чтобы комментировать проблему). Вы можете запретить Solr автоматически создавать поля копирования во время индексации.Вам просто нужно настроить процессор обновления "add-schema-fields", чтобы не создавать поля копирования на лету.Вот как

  1. Откройте файл solrconfig.xml ядра, для которого вы хотите отключить автоматическое добавление полей копирования.
  2. Закомментируйте конфигурацию, чтобы отключить создание полей копирования в текстовых полях.(или любой тип поля, настроенный для создания поля копирования).

enter image description here

Сохраните и перезапустите экземпляр Solr. Индексируйте документы.
2 голосов
/ 10 апреля 2019

Schema.xml

Поиск copyField определений с использованием подстановочных знаков в их шаблоне глобуса в schema.xml .

Команда copyField может использовать подстановочный знак (*) в параметре dest только в том случае, если параметр источника также содержит один.copyField использует соответствующий глобус из поля источника для имени поля dest, в которое копируется исходный контент.

Вам необходимо комментировать все, что выглядит следующим образом:

<copyField source="*" dest="*_str"/>

У вас также могут быть некоторые dynamicField определения, подобные приведенному ниже, которые будут создавать любые скопированные поля (в противном случае вы, возможно, помните, что вы явно указали такие поля, как app_id_str):

<dynamicField name="*_str" type="string"/>

Режим SchemaLess

Внутренне API-схемы и процессоры обновлений без схемы используют одну и ту же функциональность управляемой схемы.

Если вы используете Solr в "режиме без схемы"", вы можете сделать то же самое, используя API схемы:

Или путем перенастройки выделенного процессора обновлений в solrconfig.xml , как указано в Kusal.

См. Параграф, озаглавленный Вы все еще можете быть явным ниже в этом разделе .

...