Добавить поле в solr schema.xml - PullRequest
8 голосов
/ 13 июля 2011

Я использую solr для поиска в моей базе данных и пытаюсь добавить новое поле (publisher_id статьи) в conf / schema.xml, чтобы получить значение publisher_id после поиска в моей базе данных. не найти ни одного имени поля, эквивалентного этому полю. Так как же добавить его в качестве поля в schema.xml, которое будет возвращено с искомыми значениями (body, title, date и publisher_id) статьи?

Ответы [ 2 ]

9 голосов
/ 13 июля 2011

Прежде всего: какие данные хранятся в publisher_id? Если это число (int, log), добавьте поле с соответствующим типом, например:

<field name="publisher_id" type="int" indexed="true" stored="true" />

После добавления поля в schema.xml необходимо перезапустить экземпляр solr и перестроить свой индекс.

3 голосов
/ 26 июня 2013

Обратите внимание, что динамические добавления полей были добавлены в Solr 4.4 и Solr 5.0 ... ни один из которых еще не выпущен.

Тем временем, если вы хотите добавить полек вашему индексу у вас есть два варианта.Во-первых, вы можете сделать трудный путь: добавить поле в свою схему, очистить индекс, перезапустить Solr и переиндексировать все.Это, как правило, немного ненадежно.

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

<dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
<dynamicField name="*_is" type="int"    indexed="true"  stored="true"  multiValued="true"/>

Это означает, что если вы добавите поле с именем, заканчивающимся на _i или _is, вы будете всеготов к работе.Обычно они включены в схеме по умолчанию, поэтому, если у вас есть гибкость в отношении того, как вызывать поле, вы можете все настроить с помощью этого.

Если ни один из этих параметров не выглядит многообещающим, ваш третий вариант - дождатьсяSolr 4.4 или 5.0 и обновление (которое, по всей вероятности, также будет переиндексировано!).

...