You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ko...@apache.org on 2011/05/07 05:29:40 UTC

svn commit: r1100436 - in /lucene/dev/branches/branch_3x: ./ lucene/ lucene/backwards/ lucene/contrib/analyzers/common/src/java/org/apache/lucene/analysis/path/ solr/ solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ solr/contrib/uima/src...

Author: koji
Date: Sat May  7 03:29:39 2011
New Revision: 1100436

URL: http://svn.apache.org/viewvc?rev=1100436&view=rev
Log:
SOLR-2436: fix mapping definition

Modified:
    lucene/dev/branches/branch_3x/   (props changed)
    lucene/dev/branches/branch_3x/lucene/   (props changed)
    lucene/dev/branches/branch_3x/lucene/backwards/   (props changed)
    lucene/dev/branches/branch_3x/lucene/contrib/analyzers/common/src/java/org/apache/lucene/analysis/path/   (props changed)
    lucene/dev/branches/branch_3x/solr/   (props changed)
    lucene/dev/branches/branch_3x/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfigurationReader.java
    lucene/dev/branches/branch_3x/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessor.java
    lucene/dev/branches/branch_3x/solr/contrib/uima/src/test/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessorTest.java
    lucene/dev/branches/branch_3x/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml

Modified: lucene/dev/branches/branch_3x/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfigurationReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfigurationReader.java?rev=1100436&r1=1100435&r2=1100436&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfigurationReader.java (original)
+++ lucene/dev/branches/branch_3x/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfigurationReader.java Sat May  7 03:29:39 2011
@@ -68,12 +68,17 @@ public class SolrUIMAConfigurationReader
     NamedList fieldMappings = (NamedList) args.get("fieldMappings");
     /* iterate over UIMA types */
     for (int i = 0; i < fieldMappings.size(); i++) {
-      NamedList mapping = (NamedList) fieldMappings.get("mapping", i);
-      String typeName = (String) mapping.get("type");
-      String featureName = (String) mapping.get("feature");
-      String mappedFieldName = (String) mapping.get("field");
+      NamedList type = (NamedList) fieldMappings.get("type", i);
+      String typeName = (String)type.get("name");
+
       Map<String, String> subMap = new HashMap<String, String>();
-      subMap.put(featureName, mappedFieldName);
+      /* iterate over mapping definitions */
+      for(int j = 0; j < type.size() - 1; j++){
+        NamedList mapping = (NamedList) type.get("mapping", j + 1);
+        String featureName = (String) mapping.get("feature");
+        String mappedFieldName = (String) mapping.get("field");
+        subMap.put(featureName, mappedFieldName);
+      }
       map.put(typeName, subMap);
     }
     return map;

Modified: lucene/dev/branches/branch_3x/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessor.java?rev=1100436&r1=1100435&r2=1100436&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessor.java (original)
+++ lucene/dev/branches/branch_3x/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessor.java Sat May  7 03:29:39 2011
@@ -39,7 +39,7 @@ import org.apache.uima.resource.Resource
  */
 public class UIMAUpdateRequestProcessor extends UpdateRequestProcessor {
 
-  private SolrUIMAConfiguration solrUIMAConfiguration;
+  SolrUIMAConfiguration solrUIMAConfiguration;
 
   private AEProvider aeProvider;
 

Modified: lucene/dev/branches/branch_3x/solr/contrib/uima/src/test/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/contrib/uima/src/test/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessorTest.java?rev=1100436&r1=1100435&r2=1100436&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/contrib/uima/src/test/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessorTest.java (original)
+++ lucene/dev/branches/branch_3x/solr/contrib/uima/src/test/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessorTest.java Sat May  7 03:29:39 2011
@@ -33,6 +33,7 @@ import org.apache.solr.core.SolrCore;
 import org.apache.solr.handler.XmlUpdateRequestHandler;
 import org.apache.solr.request.SolrQueryRequestBase;
 import org.apache.solr.response.SolrQueryResponse;
+import org.apache.solr.update.processor.UpdateRequestProcessor;
 import org.apache.solr.update.processor.UpdateRequestProcessorChain;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -66,6 +67,26 @@ public class UIMAUpdateRequestProcessorT
     UIMAUpdateRequestProcessorFactory factory = (UIMAUpdateRequestProcessorFactory) chained
             .getFactories()[0];
     assertNotNull(factory);
+    UpdateRequestProcessor processor = factory.getInstance(req(), null, null);
+    assertTrue(processor instanceof UIMAUpdateRequestProcessor);
+  }
+
+  @Test
+  public void testMultiMap() {
+    SolrCore core = h.getCore();
+    UpdateRequestProcessorChain chained = core.getUpdateProcessingChain("uima-multi-map");
+    assertNotNull(chained);
+    UIMAUpdateRequestProcessorFactory factory = (UIMAUpdateRequestProcessorFactory) chained
+            .getFactories()[0];
+    assertNotNull(factory);
+    UpdateRequestProcessor processor = factory.getInstance(req(), null, null);
+    assertTrue(processor instanceof UIMAUpdateRequestProcessor);
+    SolrUIMAConfiguration conf = ((UIMAUpdateRequestProcessor)processor).solrUIMAConfiguration;
+    Map<String, Map<String, String>> map = conf.getTypesFeaturesFieldsMapping();
+    Map<String, String> subMap = map.get("a-type-which-can-have-multiple-features");
+    assertEquals(2, subMap.size());
+    assertEquals("1", subMap.get("A"));
+    assertEquals("2", subMap.get("B"));
   }
 
   @Test

Modified: lucene/dev/branches/branch_3x/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml?rev=1100436&r1=1100435&r2=1100436&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml (original)
+++ lucene/dev/branches/branch_3x/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml Sat May  7 03:29:39 2011
@@ -985,20 +985,26 @@
           </arr>
         </lst>
         <lst name="fieldMappings">
-          <lst name="mapping">
-            <str name="type">org.apache.uima.SentenceAnnotation</str>
-            <str name="feature">coveredText</str>
-            <str name="field">sentence</str>
+          <lst name="type">
+            <str name="name">org.apache.uima.SentenceAnnotation</str>
+            <lst name="mapping">
+              <str name="feature">coveredText</str>
+              <str name="field">sentence</str>
+            </lst>
           </lst>
-          <lst name="mapping">
-            <str name="type">org.apache.solr.uima.ts.SentimentAnnotation</str>
-            <str name="feature">mood</str>
-            <str name="field">sentiment</str>
+          <lst name="type">
+            <str name="name">org.apache.solr.uima.ts.SentimentAnnotation</str>
+            <lst name="mapping">
+              <str name="feature">mood</str>
+              <str name="field">sentiment</str>
+            </lst>
           </lst>
-          <lst name="mapping">
-            <str name="type">org.apache.solr.uima.ts.EntityAnnotation</str>
-            <str name="feature">coveredText</str>
-            <str name="field">entity</str>
+          <lst name="type">
+            <str name="name">org.apache.solr.uima.ts.EntityAnnotation</str>
+            <lst name="mapping">
+              <str name="feature">coveredText</str>
+              <str name="field">entity</str>
+            </lst>
           </lst>
         </lst>
       </lst>
@@ -1007,6 +1013,36 @@
     <processor class="solr.RunUpdateProcessorFactory" />
   </updateRequestProcessorChain>
 
+  <updateRequestProcessorChain name="uima-multi-map">
+    <processor class="org.apache.solr.uima.processor.UIMAUpdateRequestProcessorFactory">
+      <lst name="uimaConfig">
+        <lst name="runtimeParameters">
+          <int name="ngramsize">3</int>
+        </lst>
+        <str name="analysisEngine">/TestAE.xml</str>
+        <lst name="analyzeFields">
+          <bool name="merge">false</bool>
+          <arr name="fields">
+            <str>text</str>
+          </arr>
+        </lst>
+        <lst name="fieldMappings">
+          <lst name="type">
+            <str name="name">a-type-which-can-have-multiple-features</str>
+            <lst name="mapping">
+              <str name="feature">A</str>
+              <str name="field">1</str>
+            </lst>
+            <lst name="mapping">
+              <str name="feature">B</str>
+              <str name="field">2</str>
+            </lst>
+          </lst>
+        </lst>
+      </lst>
+    </processor>
+  </updateRequestProcessorChain>
+
   <!--
     queryResponseWriter plugins... query responses will be written using
     the writer specified by the 'wt' request parameter matching the name