This thread all sounds really kludgy ... among other things the newSearcher listener is going to need to some how keep track of when it was called as a result of a "real" commit, vs when it was called as the result of a commit it itself triggered to make changes.
wouldn't an easier place to implement this logic be in an UpdateProcessor? you'll still need the "double commit" (once so you can see the main changes, and once so the rest of the world can see your modifications) but you can execute them both directly in your processCommit(CommitUpdateCommand) method (so you don't have to worry about being able to tell them apart) : Date: Thu, 30 Jul 2009 10:14:16 +0530 : From: : =?UTF-8?B?Tm9ibGUgUGF1bCDgtKjgtYvgtKzgtL/gtLPgtY3igI0gIOCkqOCli+CkrOCljeCk : s+CljQ==?= <noble.p...@corp.aol.com> : Reply-To: solr-user@lucene.apache.org, noble.p...@gmail.com : To: solr-user@lucene.apache.org : Subject: Re: update some index documents after indexing process is done with : DIH : : If you make your EventListener implements SolrCoreAware you can get : hold of the core on inform. use that to get hold of the : SolrIndexWriter : : On Wed, Jul 29, 2009 at 9:20 PM, Marc Sturlese<marc.sturl...@gmail.com> wrote: : > : > From the newSearcher(..) of a CustomEventListener which extends of : > AbstractSolrEventListener can access to SolrIndexSearcher and all core : > properties but can't get a SolrIndexWriter. Do you now how can I get from : > there a SolrIndexWriter? This way I would be able to modify the documents (I : > need to modify them depending on values of other documents, that's why I : > can't do it with DIH delta-import). : > Thanks in advance : > : > : > Noble Paul നോബിള് नोब्ळ्-2 wrote: : >> : >> On Tue, Jul 28, 2009 at 5:17 PM, Marc Sturlese<marc.sturl...@gmail.com> : >> wrote: : >>> : >>> That really sounds the best way to reach my goal. How could I invoque a : >>> listener from the newSearcher?Would be something like: : >>> <listener event="newSearcher" class="solr.QuerySenderListener"> : >>> <arr name="queries"> : >>> <lst> <str name="q">solr</str> <str name="start">0</str> <str : >>> name="rows">10</str> </lst> : >>> <lst> <str name="q">rocks</str> <str name="start">0</str> <str : >>> name="rows">10</str> </lst> : >>> <lst><str name="q">static newSearcher warming query from : >>> solrconfig.xml</str></lst> : >>> </arr> : >>> </listener> : >>> <listener event="newSearcher" class="solr.MyCustomListener"> : >>> : >>> And MyCustomListener would be the class who open the reader: : >>> : >>> RefCounted<SolrIndexSearcher> searchHolder = null; : >>> try { : >>> searchHolder = dataImporter.getCore().getSearcher(); : >>> IndexReader reader = searchHolder.get().getReader(); : >>> : >>> //Here I iterate over the reader doing docuemnt modifications : >>> : >>> } finally { : >>> if (searchHolder != null) searchHolder.decref(); : >>> } : >>> } catch (Exception ex) { : >>> LOG.info("error"); : >>> } : >> : >> you may not be able to access the DIH API from a newSearcher event . : >> But the API would give you the searcher directly as a method : >> parameter. : >>> : >>> Finally, to access to documents and add fields to some of them, I have : >>> thought in using SolrDocument classes. Can you please point me where : >>> something similar is done in solr source (I mean creation of : >>> SolrDocuemnts : >>> and conversion of them to proper lucene docuements). : >>> : >>> Does this way for reaching the goal makes sense? : >>> : >>> Thanks in advance : >>> : >>> : >>> : >>> Noble Paul നോബിള് नोब्ळ्-2 wrote: : >>>> : >>>> when a core is reloaded the event fired is firstSearcher. newSearcher : >>>> is fired when a commit happens : >>>> : >>>> : >>>> On Tue, Jul 28, 2009 at 4:19 PM, Marc Sturlese<marc.sturl...@gmail.com> : >>>> wrote: : >>>>> : >>>>> Ok, but if I handle it in a newSearcher listener it will be executed : >>>>> every : >>>>> time I reload a core, isn't it? The thing is that I want to use an : >>>>> IndexReader to load in a HashMap some doc fields of the index and : >>>>> depending : >>>>> of the values of some field docs modify other docs. Its very memory : >>>>> consuming (I have tested it with a simple lucene script). Thats why I : >>>>> wanted : >>>>> to do it just after the indexing process. : >>>>> : >>>>> My ideal case would be to do it in the commit function of : >>>>> DirectUpdatehandler2.java just before : >>>>> writer.optimize(cmd.maxOptimizeSegments); is executed. But I don't want : >>>>> to : >>>>> mess that code... so trying to find out the best way to do that as a : >>>>> plugin : >>>>> instead of a hack as possible. : >>>>> : >>>>> Thanks in advance : >>>>> : >>>>> : >>>>> Noble Paul നോബിള് नोब्ळ्-2 wrote: : >>>>>> : >>>>>> It is best handled as a 'newSearcher' listener in solrconfig.xml. : >>>>>> onImportEnd is invoked before committing : >>>>>> : >>>>>> On Tue, Jul 28, 2009 at 3:13 PM, Marc : >>>>>> Sturlese<marc.sturl...@gmail.com> : >>>>>> wrote: : >>>>>>> : >>>>>>> Hey there, : >>>>>>> I would like to be able to do something like: After the indexing : >>>>>>> process : >>>>>>> is : >>>>>>> done with DIH I would like to open an indexreader, iterate over all : >>>>>>> docs, : >>>>>>> modify some of them depending on others and delete some others. I can : >>>>>>> easy : >>>>>>> do this directly coding with lucene but would like to know if there's : >>>>>>> a : >>>>>>> way : >>>>>>> to do it with Solr using SolrDocument or SolrInputDocument classes. : >>>>>>> I have thougth in using SolrJ or DIH listener onImportEnd but not : >>>>>>> sure : >>>>>>> if : >>>>>>> I : >>>>>>> can get an IndexReader in there. : >>>>>>> Any advice? : >>>>>>> Thanks in advance : >>>>>>> -- : >>>>>>> View this message in context: : >>>>>>> http://www.nabble.com/update-some-index-documents-after-indexing-process-is-done-with-DIH-tp24695947p24695947.html : >>>>>>> Sent from the Solr - User mailing list archive at Nabble.com. : >>>>>>> : >>>>>>> : >>>>>> : >>>>>> : >>>>>> : >>>>>> -- : >>>>>> ----------------------------------------------------- : >>>>>> Noble Paul | Principal Engineer| AOL | http://aol.com : >>>>>> : >>>>>> : >>>>> : >>>>> -- : >>>>> View this message in context: : >>>>> http://www.nabble.com/update-some-index-documents-after-indexing-process-is-done-with-DIH-tp24695947p24696872.html : >>>>> Sent from the Solr - User mailing list archive at Nabble.com. : >>>>> : >>>>> : >>>> : >>>> : >>>> : >>>> -- : >>>> ----------------------------------------------------- : >>>> Noble Paul | Principal Engineer| AOL | http://aol.com : >>>> : >>>> : >>> : >>> -- : >>> View this message in context: : >>> http://www.nabble.com/update-some-index-documents-after-indexing-process-is-done-with-DIH-tp24695947p24697751.html : >>> Sent from the Solr - User mailing list archive at Nabble.com. : >>> : >>> : >> : >> : >> : >> -- : >> ----------------------------------------------------- : >> Noble Paul | Principal Engineer| AOL | http://aol.com : >> : >> : > : > -- : > View this message in context: http://www.nabble.com/update-some-index-documents-after-indexing-process-is-done-with-DIH-tp24695947p24722111.html : > Sent from the Solr - User mailing list archive at Nabble.com. : > : > : : : : -- : ----------------------------------------------------- : Noble Paul | Principal Engineer| AOL | http://aol.com : -Hoss