You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by RPSolrUser <ro...@gmail.com> on 2012/11/27 16:49:18 UTC

Delete documents in SOLR 1.4.1

Question: We have Solr 1.4.1 in Production currently. We need to delete
documents identified by ids on daily basis from solr.

--Following deletes by keys and delta data load works--
-- snippet of db-data-config.xml

<dataConfig>
  <dataSource name="goodtest" driver="oracle.jdbc.OracleDriver" 
	url="jdbc:oracle:thin:@server:port:servicename"
      user="userid"
      password="password"  batchSize ="5000"/>
	 

  <document>
    <entity name="agreement_master" pk="AGREEMENT_KEY" dataSource="goodtest"
transformer="RegexTransformer,TemplateTransformer,DateFormatTransformer,ClobTransformer,
OracleTimestampTransformer"


   deletedPkQuery="select AGREEMENT_KEY from
solr_part_supplier_agreement_del" 


   query= "select  AGREEMENT_KEY, bunch of other fields    FROM
SOLR_part_supplier_agreement" 
  
   deltaQuery="select AGREEMENT_KEY, bunch of other fields FROM
SOLR_part_supplier_agree_delta" 

   deltaImportQuery="select AGREEMENT_KEY, bunch of other fields FROM
SOLR_part_supplier_agree_delta where AGREEMENT_KEY  =
'${dataimporter.delta.AGREEMENT_KEY}'" >

	</entity>
    </document>
</dataConfig>

-- snippet of solrconfig.xml
   </requestHandler>

   <requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
    	<str name="config">db-data-config.xml</str>
    </lst>
  </requestHandler>
  
I am invoking Delta-Import using dataimport.jsp. Everything works good.
Delta data (indentifed by SOLR_PART_SUPPLIER_AGREE_DELTA) get indexed and
bunch of documents identified by solr_part_supplier_agreement_del get
deleted.
 
However, I have a need to just delete the documents from another solr core
without loading delta data. How can I achieve that?

 -- This does not work. Does not delete any docs as deletedPkQuery is
supposed only work with delta loads --
<dataConfig>
<dataSource name="test" 
	driver="oracle.jdbc.OracleDriver" 
	url="jdbc:oracle:thin:@server:port:servicename"
    user="userid"
    password="password" 
/>
	<document>
		<entity name="part_master_del" pk="UNIQUE_ID" dataSource="test"
			deletedPkQuery="select  part_master_key as UNIQUE_ID  from
PART_MASTER_DEL" >
 		</entity>
    </document>
</dataConfig>

Question: How can I just delete the documents by id? Is deleteDocById the
answer? How can I use it? I tried but the DIH does not show any updates. Can
we use any other approach?

Do I need to patch SOLR 1.4.1 with any bug fix?
Example of deleteDocById is appreciated.

Thanks.



--
View this message in context: http://lucene.472066.n3.nabble.com/Delete-documents-in-SOLR-1-4-1-tp4022660.html
Sent from the Solr - User mailing list archive at Nabble.com.