Solr CopyField с источником — два поля

У меня есть поле в solr - имя (со значениями, такими как Таня) и фамилия (значения, такие как Маринова)

Можно ли сделать еще один CopyField в solr, который представляет собой конкатенацию этих двух полей

(так что это значение должно быть ТаняМаринова)

Вот мой файл schema.xml

 <field name="meta" type="string" indexed="true" stored="true" /> 
  <copyField source="name" dest="meta" /> 

могу я просто добавить

  <copyField source="lastname" dest="meta" /> 

person Tania Marinova    schedule 24.03.2013    source источник


Ответы (1)


Нет, вы не можете достичь этого. Вы должны вызвать его вне SOLR. Вы можете маршрутизировать 2 поля в один copyField, но тогда у вас будет просто многозначное поле с 2 значениями для вашего документа (Таня, Маринова). Вы не можете конкатенировать, как это.

Если вы действительно настаиваете на том, чтобы сделать это в SOLR, вам следует изучить IndexSchema и FieldType и реализовать свой собственный тип поля. Однако это гораздо больше работы, чем выполнение внешней конкатенации.

person lexk    schedule 24.03.2013
comment
Последний вопрос - почему когда я пишу в scehma.xml ‹field name=meta type=string indexed=true хранить=true multiValued=true /› ‹copyField source=name dest=meta /› ‹copyField source=lastname dest=meta /› Я снова вижу только имя в поле для копирования - person Tania Marinova; 24.03.2013
comment
См. здесь: stackoverflow.com/questions/11154656/ - очень похожий вопрос. - person lexk; 24.03.2013
comment
да, я видел этот вопрос давным-давно, прежде чем решил опубликовать. Но я видел, что человек, который задал вопрос, также получает ошибку при индексации многозначного поля. И я получил только значение имени; я не понимаю, почему он не добавляет значение фамилии - person Tania Marinova; 24.03.2013