Hi Erick,

Below is the sample flow.


String solrHome = "/opt/solr/home";

File solrXml = new File( solrHome, "solr.xml" ); 

container = new CoreContainer(); 

container.load(solrHome, solrXml); 

SolrServer solr = new EmbeddedSolrServer(container, "core1"); 

solr.deleteByQuery("*:*"); 

SolrInputDocument doc1 = new SolrInputDocument(); 

doc1.addField( "id", "id1", 1.0f ); 

doc1.addField( "name", "doc1", 1.0f ); 

Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>(); 

docs.add( doc1 ); 

solr.commit(); 

SolrCore curCore = container.getCore("core1");
 
curCore.close();



I have also seen that EmbeddedSolrServer process is not terminating after 
completion of the indexing process, can this be a reason. But even after manual 
termination of the process the 'write.lock' file stays in the index directory.


-Shyam

-----Original Message-----
From: Erick Erickson [mailto:erickerick...@gmail.com] 
Sent: Tuesday, January 31, 2012 7:30 PM
To: solr-user@lucene.apache.org
Subject: Re: removing write.lock file in solr after indexing

Oops, fat fingers... Anyway, this is surprising. Can you provide
more details on how you do your indexing?

Best
Erick

On Tue, Jan 31, 2012 at 8:59 AM, Erick Erickson <erickerick...@gmail.com> wrote:
> On Mon, Jan 30, 2012 at 2:42 AM, Shyam Bhaskaran
> <shyam.bhaska...@synopsys.com> wrote:
>> Hi,
>>
>> We are using Solr 4.0 and after indexing every time it is observed that the 
>> write.lock remains without getting cleared and for the next indexing we have 
>> to delete the file to get the indexing process running.
>>
>> We use SolrServer for our indexing and I do not see any  methods to close or 
>> clear the indexes on completion of indexing.
>>
>>
>> I have seen that adding the below lines into solrconfig.xml file avoids the 
>> issue of physically removing the write.lock file when doing indexing.
>>
>>
>>
>> <indexDefaults>
>>
>>  <lockType>simple</lockType>
>>
>>  <unlockOnStartup>true</unlockOnStartup>
>>
>> </indexDefaults>
>>
>>
>> But I am hesitant in adding this directive, as it might not be a good idea 
>> to set this directive in production as it would defeat the purpose of 
>> locking the index while another process writes into it.
>>
>> Let me know if we can do this programmatically, is there something like 
>> close() which would remove the write.lock file after completion of indexing 
>> using SolrServer?
>>
>> Thanks
>> Shyam

Reply via email to