Hi,

If you want to add payloads in the UpdateChain, have a look at 
DelimitedPayloadTokenFilter. Put that in your FieldType, and create a Processor 
which annotates the text with payloads, e.g.:

<field name="text">foo|2.0 bar|3.0</field>

Using DelimitedPayloadTokenFilter with delimiter="|" you can now get the 
payload 2.0 indexed for "foo" and 3.0 for "bar".

Perhaps you should have a look at DisMax request handler as well, which for 
many use cases is a better option than using catch-all field.

--
Jan Høydahl, search solution architect
Cominvent AS - www.cominvent.com
Solr Training - www.solrtraining.com

On 5. okt. 2011, at 21:49, Mikhail Khludnev wrote:

> Jan,
> 
> Shame on me, I was off for some time. I have a "catch-all" field - initially 
> I copied n fields into the single one. But then I had to add a special 
> payload per copied fields, and I've done it by Analyzer.  
> 
> for(src : srcFiledNames ){
>    payload = new MyPayloadTokenStream(input.get(src));
>    doc.add(new Field("destination",  payload));
> }
> 
> How it can be done?
> 
> --
> Mikhail Khludnev
> 
> On Wed, Aug 31, 2011 at 3:52 PM, Jan Høydahl <jan....@cominvent.com> wrote:
> Hi,
> 
> Can you explain the wanted functional result of your copy operation? I've 
> done copying fields in processors without trouble.
> What do you want to do with the Lucene Document?
> 
> --
> Jan Høydahl, search solution architect
> Cominvent AS - www.cominvent.com
> Solr Training - www.solrtraining.com
> 
> On 17. aug. 2011, at 09.51, Mikhail Khludnev wrote:
> 
>> Hello,
>> 
>> I need to implement some tricky copyField like in 
>> http://wiki.apache.org/solr/UpdateRequestProcessor. 
>> But I need to take the SolrInputDocument field and put it into Lucene 
>> document myself by my own UpdateRequestProcessor. Unfortunately there is no 
>> room to do that because the creating Lucene document and its' indexing it is 
>> the single method: 
>> 
>> org.apache.solr.update.processor.RunUpdateProcessor.processAdd(AddUpdateCommand)
>>  {
>>     cmd.doc = DocumentBuilder.toDocument(cmd.getSolrInputDocument(), 
>> req.getSchema());
>>     updateHandler.addDoc(cmd);
>>     super.processAdd(cmd);
>>   }
>> 
>> I was surprised because the Chain-of-responsibility and Command pattern are 
>> made for such usages.
>> 
>> I propose to separate the current RunUpdateProcessor onto 
>> BuildLuceneDocumentProcessor and UpdateHandlerProcessor that allow users to 
>> inject their own routines in the main flow. 
>> Right now I had to copy-paste RunUpdateProcessor to get my purpose.
>> 
>> WDYT?
>> 
>> -- 
>> Sincerely yours
>> Mikhail (Mike) Khludnev
>> Developer
>> Grid Dynamics
>> Skype: mkhludnev
>> 
> 
> 
> 
> 
> -- 
> Sincerely yours
> Mikhail (Mike) Khludnev
> Developer
> Grid Dynamics
> tel. 1-415-738-8644
> Skype: mkhludnev
> 
> 

Reply via email to