Author: riverma
Date: Thu Jan 31 02:19:43 2013
New Revision: 1440797
URL: http://svn.apache.org/viewvc?rev=1440797&view=rev
Log:
OODT-556 resolution: Add ability to delete a product from Solr index via
SolrIndexer tool
Modified:
oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/tools/SolrIndexer.java
Modified:
oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/tools/SolrIndexer.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/tools/SolrIndexer.java?rev=1440797&r1=1440796&r2=1440797&view=diff
==============================================================================
---
oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/tools/SolrIndexer.java
(original)
+++
oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/tools/SolrIndexer.java
Thu Jan 31 02:19:43 2013
@@ -485,6 +485,45 @@ public class SolrIndexer {
}
/**
+ * This method deletes a single product identified by a productID from
the Solr index
+ *
+ * @param productId
+ * @throws IOException
+ * @throws SolrServerException
+ */
+ public void deleteProduct(String productId) throws IOException,
SolrServerException {
+ LOG.info("Attempting to delete product: " + productId);
+ this.deleteProductFromIndex(productId);
+ }
+
+ /**
+ * This method deletes a product(s) from the Solr index identified by a
given name
+ *
+ * @param productName
+ * @throws IOException
+ * @throws SolrServerException
+ */
+ public void deleteProductByName(String productName) throws IOException,
SolrServerException {
+ LOG.info("Attempting to delete product: " + productName);
+
+ try {
+ String productNameField =
config.mapProperties.getProperty(PRODUCT_NAME);
+ if (StringUtils.hasText(productNameField)) {
+
server.deleteByQuery(productNameField+":"+productName);
+ } else {
+ LOG.warning("Metadata field "+PRODUCT_NAME+" is
not mapped to any Solr field, cannot delete product by name");
+ }
+ } catch(Exception e) {
+ LOG.warning("Could not delete product: "+productName+"
from Solr index");
+ }
+
+ }
+
+ private void deleteProductFromIndex(String productId) throws
IOException, SolrServerException {
+ server.deleteById(productId);
+ }
+
+ /**
* Quick helper method to do substitution on the keys specified in the
config
*
* @param metadata