copyField цепочка - PullRequest
       1

copyField цепочка

4 голосов
/ 09 марта 2012

Я пытался использовать copyField как цепочку, но, похоже, она не работает. Вот мой пример:

<copyField source="allfields" dest="metafields1" />
<copyField source="metafields1" dest="metafields2" />
<copyField source="metafields2" dest="metafields3" />

Каждое поле использует свой fieldType.

Проблема в том, что кроме всех полей и мета-полей1 другие не имеют контента после индексации. Solr не может скопировать из другого copyField? Я использую Solr 3,5.

Ответы [ 2 ]

11 голосов
/ 09 марта 2012

Документация @ http://wiki.apache.org/solr/SchemaXml#Copy_Fields

Копирование выполняется на уровне источника потока, и никакая копия не передается в другую копию.

Наличие поля копирования в качестве источникаТег copyfield не работает.
Источник поля копирования должен быть фактическим полем, которое имеет некоторое значение и не имеет каскада.

Вы также можете проверить http://lucene.472066.n3.nabble.com/does-copyField-recurse-td2450208.html

0 голосов
/ 28 февраля 2013

Как сказала Джаендра, копирование выполняется на уровне исходного потока при индексировании, и вы можете использовать его для копирования анализируемого текста из полей копирования.

Шаги для получения @ решения: 1. Настройте поля(source и dest) и его тип поля соответственно.

Написать собственный процессор обновлений и настроить его в solrconfig.xml

custom_processor_name

A.Посмотрите на эту ссылку

B.В processAdd() из (A) выполните ниже для получения tokenStream для сконфигурированного поля схемы, проанализируйте и скопируйте значение анализируемого потока токенов в поле dest.

Пример:

SchemaField field = req.getSchema().getField(sourceField);

Analyzer anal = sourceField.getType().getAnalyzer();

....
//ToDo: Retrieve tokenStream from source and add it to Destination 
....

doc.addField(destFieldToCopy, termBuffer.toString());

Чтобы получить tokenStream, проверьте этот пост

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...