2012-07-23 3 views
1

У меня есть многозначное поледанные Solr импортировать многозначное поле в одноверсионном поле

<arr name="colors"> 
<str>Blue</str> 
<str>Red</str> 
<str>Orange</str> 
<str>Pink</str> 
<str>Violet</str> 
</arr> 

заливкой, как это:

<entity name="pub_attributes" query=" SELECT name [description] FROM dbo.Colors"> 
     <field name="colors" column="description" /> 
</entity> 

И мне нужно еще одно поле со всеми цветами, но только в одной строке, разделенной пробелами, например

<str name="Colors_All">Bue Red Orange Pink Violet</str> 

Как это сделать без доступа к таблице цветов снова и снова ?? Может быть что-то вроде этого

<entity name="Properites_all" query=" 
    DECLARE @all VARCHAR(MAX) 
    SET @all = ''  
    Select @all = @all + ... from '${pub_attributes.colors}' 

    UNION 
    Another SELECT that will add more info than just the colors 
"> 
    <field name="colors_all" column="description" /> 
</entity> 
+1

Не могли бы вы принять еще несколько ответов, которые вы получили раньше? – javanna

ответ

0

Я думаю, что вы ищете, copyfield: copyfield wiki, а также вы можете посмотреть здесь может: how to use it Надеюсь, что поможет.

+0

Я пробовал это, но копирование из многозначного в однозначное не работает, плюс, мне нужно добавить дополнительную информацию в поле «Colors_All», поэтому мне нужно ссылаться на атрибут «colors» в запросе, поэтому после этого я могу добавить к нему еще несколько слов. Спасибо, в любом случае! – Nicole

+2

В этом случае, если вы используете DIH (обработчик импорта данных) для импорта, вы можете использовать scriptTransformer при импорте/индексе времени: [link] (http://wiki.apache.org/solr/DataImportHandler#ScriptTransformer) – vuky

Смежные вопросы