Author: ogrisel
Date: Thu Jan  5 18:33:53 2012
New Revision: 1227733

URL: http://svn.apache.org/viewvc?rev=1227733&view=rev
Log:
STANBOL-197: implement example removal

Modified:
    
incubator/stanbol/trunk/enhancer/engines/topic/src/main/java/org/apache/stanbol/enhancer/topic/SolrTrainingSet.java
    
incubator/stanbol/trunk/enhancer/engines/topic/src/test/java/org/apache/stanbol/enhancer/engine/topic/TrainingSetTest.java

Modified: 
incubator/stanbol/trunk/enhancer/engines/topic/src/main/java/org/apache/stanbol/enhancer/topic/SolrTrainingSet.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/engines/topic/src/main/java/org/apache/stanbol/enhancer/topic/SolrTrainingSet.java?rev=1227733&r1=1227732&r2=1227733&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/enhancer/engines/topic/src/main/java/org/apache/stanbol/enhancer/topic/SolrTrainingSet.java
 (original)
+++ 
incubator/stanbol/trunk/enhancer/engines/topic/src/main/java/org/apache/stanbol/enhancer/topic/SolrTrainingSet.java
 Thu Jan  5 18:33:53 2012
@@ -144,6 +144,23 @@ public class SolrTrainingSet extends Con
 
     @Override
     public String registerExample(String exampleId, String text, List<String> 
topics) throws TrainingSetException {
+        if (text == null) {
+            // special case: example removal
+            if (exampleId == null) {
+                throw new IllegalArgumentException("exampleId and text should 
not be null simultaneously");
+            }
+            SolrServer solrServer = getActiveSolrServer();
+            try {
+                solrServer.deleteByQuery(exampleIdField + ":" + exampleId);
+                solrServer.commit();
+                return exampleId;
+            } catch (Exception e) {
+                String msg = String.format("Error deleting example with id 
'%s' on Solr Core '%s'",
+                    exampleId, solrCoreId);
+                throw new TrainingSetException(msg, e);
+            }
+        }
+
         if (exampleId == null || exampleId.isEmpty()) {
             exampleId = UUID.randomUUID().toString();
         }

Modified: 
incubator/stanbol/trunk/enhancer/engines/topic/src/test/java/org/apache/stanbol/enhancer/engine/topic/TrainingSetTest.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/enhancer/engines/topic/src/test/java/org/apache/stanbol/enhancer/engine/topic/TrainingSetTest.java?rev=1227733&r1=1227732&r2=1227733&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/enhancer/engines/topic/src/test/java/org/apache/stanbol/enhancer/engine/topic/TrainingSetTest.java
 (original)
+++ 
incubator/stanbol/trunk/enhancer/engines/topic/src/test/java/org/apache/stanbol/enhancer/engine/topic/TrainingSetTest.java
 Thu Jan  5 18:33:53 2012
@@ -122,6 +122,18 @@ public class TrainingSetTest extends Bas
         assertEquals(2, examples.items.size());
         assertEquals(examples.items, Arrays.asList("Text of example1.", "Text 
of example2."));
         assertFalse(examples.hasMore);
+        
+        // Test example removal
+        trainingSet.registerExample("example1", null, Arrays.asList(TOPIC_1, 
TOPIC_3));
+        examples = trainingSet.getPositiveExamples(Arrays.asList(TOPIC_1, 
TOPIC_3), null);
+        assertEquals(1, examples.items.size());
+        assertEquals(examples.items, Arrays.asList("Text of example2."));
+        assertFalse(examples.hasMore);
+
+        trainingSet.registerExample("example2", null, Arrays.asList(TOPIC_1, 
TOPIC_3));
+        examples = trainingSet.getPositiveExamples(Arrays.asList(TOPIC_1, 
TOPIC_3), null);
+        assertEquals(0, examples.items.size());
+        assertFalse(examples.hasMore);
     }
 
     @Test


Reply via email to