My problem is that the in the BaseSolrServer the add(Collection, Boolean) call does the req.process call inside of it.. so I can't add a setAction to the updateRequest before it processes. And the add method also creates a *new* update request inside of it, so I can't set the action beforehand either.. (the method that gets called is on line 44 of the BaseSolrServer):
public UpdateResponse add(Collection<SolrInputDocument> docs, boolean overwrite ) throws SolrServerException, IOException { UpdateRequest req = new UpdateRequest(); req.add(docs); req.setOverwrite(overwrite); return req.process(this); } So there is no way to get at the action of that request. -----Original Message----- From: Ryan McKinley [mailto:[EMAIL PROTECTED] Sent: Tuesday, January 15, 2008 1:19 PM To: solr-dev@lucene.apache.org Subject: Re: solrj patch to COMMIT with xml hymm - with 1.3, the standard solrj should work without issue. What do the logs say when you call commit? What container are you running? I have tested this extensivly with resin and jetty, but have not touched tomcat... To add and commit in one shot, try: UpdateRequest up = new UpdateRequest(); up.add( docs ); up.setAction( ACTION.COMMIT, true, false ); up.process( client ); ryan Keene, David wrote: > Nope, I'm using 1.3 (synced 2 days ago). I'm indexing using using code > similar to below, and it creates 2 connections when doing so. Perhaps > there is a better way to do my indexing so the commit is included with > the add connction. > > Sample indexing code: > > UpdateResponse addResponse = client.add( docs ); > UpdateResponse commitResponse = client.commit(); > > Is there a way to make the client.add(docs) connection add a commit? > > > -----Original Message----- > From: Ryan McKinley [mailto:[EMAIL PROTECTED] > Sent: Tuesday, January 15, 2008 12:54 PM > To: solr-dev@lucene.apache.org > Subject: Re: solrj patch to COMMIT with xml > > Are you hitting a 1.2 solr index? Using ?commit=true assumes you are > hitting a 1.3 index... > > The reason for it is so you can optionally add docs and commit in one > call. > > ryan > > > Keene, David wrote: >> Hey guys, >> >> >> >> I'm not sure why, but the solrj client relies on commit=true on the >> querystring for committing an index() call. But with the latest svn >> trunk, my index() calls were not committing. I made a patch to add a >> <COMMIT/> element to the posted xml so I could index using the solrj >> client. >> >> >> >> Did I miss something about how to get commits working in 1.3? Anyway, >> here's the patch if you want it. >> >> >> >> Thanks, >> >> Dave >> >> >> >> >> >> >> >> >> >> Index: C:/Documents and >> > Settings/dkeene/workspace/solr.trunk/client/java/solrj/src/org/apache/so >> lr/client/solrj/request/UpdateRequest.java >> >> =================================================================== >> >> --- C:/Documents and >> > Settings/dkeene/workspace/solr.trunk/client/java/solrj/src/org/apache/so >> lr/client/solrj/request/UpdateRequest.java (revision 611919) >> >> +++ C:/Documents and >> > Settings/dkeene/workspace/solr.trunk/client/java/solrj/src/org/apache/so >> lr/client/solrj/request/UpdateRequest.java (working copy) >> >> @@ -171,7 +171,14 @@ >> >> writer.append( "</delete>" ); >> >> } >> >> >> >> - // If action is COMMIT or OPTIMIZE, it is sent with params >> >> + if (action != null ) { >> >> + if (action == ACTION.OPTIMIZE) { >> >> + >> writer.append("<optimize/>"); >> >> + } else if (action == ACTION.COMMIT) > { >> + >> writer.append("<commit/>"); >> >> + } >> >> + } >> >> + >> >> String xml = writer.toString(); >> >> //System.out.println( "SEND:"+xml ); >> >> return (xml.length() > 0) ? xml : null; >> >> > >