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