Hi I don't see your requirement clearly. Sounds like what you really need is an UpdateRequestProcessor where you CAN intercept docs being added and modify them as you wish. https://lucene.apache.org/solr/guide/7_7/update-request-processors.html
-- Jan Høydahl, search solution architect Cominvent AS - www.cominvent.com > 1. mai 2019 kl. 22:31 skrev Maria Muslea <maria.mus...@gmail.com>: > > Hi, > > I have a plugin that extends the AbstractSolrEventListener. I override the > newSearcher() method and the plan is to add some extra functionality, > namely updating existing documents by setting new values for existing > fields as well as adding new fields to the documents. > > I can see that the plugin is invoked and I can get the list of documents, > but I cannot update existing fields or add new fields. I have tried various > approaches, but I cannot get it to work. > > If you have any suggestions I would really appreciate it. The code that I > am currently trying is below. > > Thank you, > Maria > > for (DocIterator iter = docs.iterator(); iter.hasNext();) { > > int doci = iter.nextDoc(); > > Document document = newSearcher.doc(doci); > > > > SolrInputDocument solrInputDocument1 = new SolrInputDocument(); > > AddUpdateCommand addUpdateCommand1 = new AddUpdateCommand(req); > > addUpdateCommand1.clear(); > > solrInputDocument1.setField("id", document.get("id")); > > solrInputDocument1.addField("newfield", "newvalue"); > > solrInputDocument1.setField("existingfield", "value"); > > addUpdateCommand1.solrDoc = solrInputDocument1; > > getCore().getUpdateHandler().addDoc(addUpdateCommand1); > > > SolrQueryResponse re = new SolrQueryResponse(); > > SolrQueryRequest rq = new LocalSolrQueryRequest(getCore(), new > ModifiableSolrParams()); > > CommitUpdateCommand commit = new CommitUpdateCommand(rq,false); > > getCore().getUpdateHandler().commit(commit); > > > }