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 > >