You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sa...@apache.org on 2011/05/22 23:45:45 UTC
svn commit: r1126234 [24/28] - in /lucene/dev/branches/solr2452: ./
dev-tools/eclipse/ dev-tools/idea/ dev-tools/idea/.idea/
dev-tools/idea/lucene/ dev-tools/idea/lucene/contrib/ant/
dev-tools/idea/lucene/contrib/db/bdb-je/ dev-tools/idea/lucene/contri...
Modified: lucene/dev/branches/solr2452/solr/contrib/uima/src/test/java/org/apache/solr/uima/ts/EntityAnnotation.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/contrib/uima/src/test/java/org/apache/solr/uima/ts/EntityAnnotation.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/contrib/uima/src/test/java/org/apache/solr/uima/ts/EntityAnnotation.java (original)
+++ lucene/dev/branches/solr2452/solr/contrib/uima/src/test/java/org/apache/solr/uima/ts/EntityAnnotation.java Sun May 22 21:45:19 2011
@@ -1,6 +1,6 @@
-/* First created by JCasGen Fri Mar 04 12:48:08 CET 2011 */
+/* First created by JCasGen Sat May 07 22:33:38 JST 2011 */
package org.apache.solr.uima.ts;
import org.apache.uima.jcas.JCas;
@@ -11,8 +11,8 @@ import org.apache.uima.jcas.tcas.Annotat
/**
- * Updated by JCasGen Fri Mar 04 12:50:14 CET 2011
- * XML source: /Users/tommasoteofili/Documents/workspaces/lucene_workspace/lucene_dev/solr/contrib/uima/src/test/resources/DummyEntityAEDescriptor.xml
+ * Updated by JCasGen Sat May 07 22:33:38 JST 2011
+ * XML source: /Users/koji/Documents/workspace/DummyEntityAnnotator/desc/DummyEntityAEDescriptor.xml
* @generated */
public class EntityAnnotation extends Annotation {
/** @generated
@@ -57,6 +57,42 @@ public class EntityAnnotation extends An
@generated modifiable */
private void readObject() {}
-}
+
+
+ //*--------------*
+ //* Feature: name
+
+ /** getter for name - gets
+ * @generated */
+ public String getName() {
+ if (EntityAnnotation_Type.featOkTst && ((EntityAnnotation_Type)jcasType).casFeat_name == null)
+ jcasType.jcas.throwFeatMissing("name", "org.apache.solr.uima.ts.EntityAnnotation");
+ return jcasType.ll_cas.ll_getStringValue(addr, ((EntityAnnotation_Type)jcasType).casFeatCode_name);}
+
+ /** setter for name - sets
+ * @generated */
+ public void setName(String v) {
+ if (EntityAnnotation_Type.featOkTst && ((EntityAnnotation_Type)jcasType).casFeat_name == null)
+ jcasType.jcas.throwFeatMissing("name", "org.apache.solr.uima.ts.EntityAnnotation");
+ jcasType.ll_cas.ll_setStringValue(addr, ((EntityAnnotation_Type)jcasType).casFeatCode_name, v);}
+
+
+ //*--------------*
+ //* Feature: entity
+
+ /** getter for entity - gets
+ * @generated */
+ public String getEntity() {
+ if (EntityAnnotation_Type.featOkTst && ((EntityAnnotation_Type)jcasType).casFeat_entity == null)
+ jcasType.jcas.throwFeatMissing("entity", "org.apache.solr.uima.ts.EntityAnnotation");
+ return jcasType.ll_cas.ll_getStringValue(addr, ((EntityAnnotation_Type)jcasType).casFeatCode_entity);}
+
+ /** setter for entity - sets
+ * @generated */
+ public void setEntity(String v) {
+ if (EntityAnnotation_Type.featOkTst && ((EntityAnnotation_Type)jcasType).casFeat_entity == null)
+ jcasType.jcas.throwFeatMissing("entity", "org.apache.solr.uima.ts.EntityAnnotation");
+ jcasType.ll_cas.ll_setStringValue(addr, ((EntityAnnotation_Type)jcasType).casFeatCode_entity, v);}
+ }
\ No newline at end of file
Modified: lucene/dev/branches/solr2452/solr/contrib/uima/src/test/java/org/apache/solr/uima/ts/EntityAnnotation_Type.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/contrib/uima/src/test/java/org/apache/solr/uima/ts/EntityAnnotation_Type.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/contrib/uima/src/test/java/org/apache/solr/uima/ts/EntityAnnotation_Type.java (original)
+++ lucene/dev/branches/solr2452/solr/contrib/uima/src/test/java/org/apache/solr/uima/ts/EntityAnnotation_Type.java Sun May 22 21:45:19 2011
@@ -1,5 +1,5 @@
-/* First created by JCasGen Fri Mar 04 12:48:08 CET 2011 */
+/* First created by JCasGen Sat May 07 22:33:38 JST 2011 */
package org.apache.solr.uima.ts;
import org.apache.uima.jcas.JCas;
@@ -9,10 +9,12 @@ import org.apache.uima.cas.impl.FSGenera
import org.apache.uima.cas.FeatureStructure;
import org.apache.uima.cas.impl.TypeImpl;
import org.apache.uima.cas.Type;
+import org.apache.uima.cas.impl.FeatureImpl;
+import org.apache.uima.cas.Feature;
import org.apache.uima.jcas.tcas.Annotation_Type;
/**
- * Updated by JCasGen Fri Mar 04 12:50:14 CET 2011
+ * Updated by JCasGen Sat May 07 22:33:38 JST 2011
* @generated */
public class EntityAnnotation_Type extends Annotation_Type {
/** @generated */
@@ -38,6 +40,42 @@ public class EntityAnnotation_Type exten
/** @generated
@modifiable */
public final static boolean featOkTst = JCasRegistry.getFeatOkTst("org.apache.solr.uima.ts.EntityAnnotation");
+
+ /** @generated */
+ final Feature casFeat_name;
+ /** @generated */
+ final int casFeatCode_name;
+ /** @generated */
+ public String getName(int addr) {
+ if (featOkTst && casFeat_name == null)
+ jcas.throwFeatMissing("name", "org.apache.solr.uima.ts.EntityAnnotation");
+ return ll_cas.ll_getStringValue(addr, casFeatCode_name);
+ }
+ /** @generated */
+ public void setName(int addr, String v) {
+ if (featOkTst && casFeat_name == null)
+ jcas.throwFeatMissing("name", "org.apache.solr.uima.ts.EntityAnnotation");
+ ll_cas.ll_setStringValue(addr, casFeatCode_name, v);}
+
+
+
+ /** @generated */
+ final Feature casFeat_entity;
+ /** @generated */
+ final int casFeatCode_entity;
+ /** @generated */
+ public String getEntity(int addr) {
+ if (featOkTst && casFeat_entity == null)
+ jcas.throwFeatMissing("entity", "org.apache.solr.uima.ts.EntityAnnotation");
+ return ll_cas.ll_getStringValue(addr, casFeatCode_entity);
+ }
+ /** @generated */
+ public void setEntity(int addr, String v) {
+ if (featOkTst && casFeat_entity == null)
+ jcas.throwFeatMissing("entity", "org.apache.solr.uima.ts.EntityAnnotation");
+ ll_cas.ll_setStringValue(addr, casFeatCode_entity, v);}
+
+
@@ -47,6 +85,14 @@ public class EntityAnnotation_Type exten
super(jcas, casType);
casImpl.getFSClassRegistry().addGeneratorForType((TypeImpl)this.casType, getFSGenerator());
+
+ casFeat_name = jcas.getRequiredFeatureDE(casType, "name", "uima.cas.String", featOkTst);
+ casFeatCode_name = (null == casFeat_name) ? JCas.INVALID_FEATURE_CODE : ((FeatureImpl)casFeat_name).getCode();
+
+
+ casFeat_entity = jcas.getRequiredFeatureDE(casType, "entity", "uima.cas.String", featOkTst);
+ casFeatCode_entity = (null == casFeat_entity) ? JCas.INVALID_FEATURE_CODE : ((FeatureImpl)casFeat_entity).getCode();
+
}
}
Modified: lucene/dev/branches/solr2452/solr/contrib/uima/src/test/resources/DummyEntityAEDescriptor.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/contrib/uima/src/test/resources/DummyEntityAEDescriptor.xml?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/contrib/uima/src/test/resources/DummyEntityAEDescriptor.xml (original)
+++ lucene/dev/branches/solr2452/solr/contrib/uima/src/test/resources/DummyEntityAEDescriptor.xml Sun May 22 21:45:19 2011
@@ -32,6 +32,18 @@
<name>org.apache.solr.uima.ts.EntityAnnotation</name>
<description/>
<supertypeName>uima.tcas.Annotation</supertypeName>
+ <features>
+ <featureDescription>
+ <name>name</name>
+ <description/>
+ <rangeTypeName>uima.cas.String</rangeTypeName>
+ </featureDescription>
+ <featureDescription>
+ <name>entity</name>
+ <description/>
+ <rangeTypeName>uima.cas.String</rangeTypeName>
+ </featureDescription>
+ </features>
</typeDescription>
</types>
</typeSystemDescription>
Modified: lucene/dev/branches/solr2452/solr/contrib/uima/src/test/resources/solr-uima/conf/schema.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/contrib/uima/src/test/resources/solr-uima/conf/schema.xml?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/contrib/uima/src/test/resources/solr-uima/conf/schema.xml (original)
+++ lucene/dev/branches/solr2452/solr/contrib/uima/src/test/resources/solr-uima/conf/schema.xml Sun May 22 21:45:19 2011
@@ -597,6 +597,7 @@
stored="true" multiValued="true"/> <dynamicField name="random_*"
type="random" />
-->
+ <dynamicField name="*_sm" type="string" indexed="true" stored="true" multiValued="true"/>
<!--
uncomment the following to ignore any fields that don't already
match an existing field name or dynamic field, rather than
Modified: lucene/dev/branches/solr2452/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml (original)
+++ lucene/dev/branches/solr2452/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml Sun May 22 21:45:19 2011
@@ -295,7 +295,7 @@
<!--
<indexReaderFactory name="IndexReaderFactory"
class="org.apache.solr.core.StandardIndexReaderFactory"> <int
- name="termInfosIndexDivisor">12</int> </indexReaderFactory >
+ name="setTermIndexDivisor">12</int> </indexReaderFactory >
-->
@@ -855,7 +855,7 @@
-->
<requestHandler name="/update" class="solr.XmlUpdateRequestHandler">
<lst name="defaults">
- <str name="update.processor">uima</str>
+ <str name="update.chain">uima</str>
</lst>
</requestHandler>
@@ -953,42 +953,6 @@
</lst>
</requestHandler>
- <highlighting>
- <!-- Configure the standard fragmenter -->
- <!-- This could most likely be commented out in the "default" case -->
- <fragmenter name="gap"
- class="org.apache.solr.highlight.GapFragmenter" default="true">
- <lst name="defaults">
- <int name="hl.fragsize">100</int>
- </lst>
- </fragmenter>
-
- <!--
- A regular-expression-based fragmenter (f.i., for sentence
- extraction)
- -->
- <fragmenter name="regex"
- class="org.apache.solr.highlight.RegexFragmenter">
- <lst name="defaults">
- <!-- slightly smaller fragsizes work better because of slop -->
- <int name="hl.fragsize">70</int>
- <!-- allow 50% slop on fragment sizes -->
- <float name="hl.regex.slop">0.5</float>
- <!-- a basic sentence pattern -->
- <str name="hl.regex.pattern">[-\w ,/\n\"']{20,200}</str>
- </lst>
- </fragmenter>
-
- <!-- Configure the standard formatter -->
- <formatter name="html" class="org.apache.solr.highlight.HtmlFormatter"
- default="true">
- <lst name="defaults">
- <str name="hl.simple.pre"><![CDATA[<em>]]></str>
- <str name="hl.simple.post"><![CDATA[</em>]]></str>
- </lst>
- </formatter>
- </highlighting>
-
<!--
An example dedup update processor that creates the "id" field on the
fly based on the hash code of some other fields. This example has
@@ -997,16 +961,122 @@
anyway. You have to link the chain to an update handler above to use
it ie: <requestHandler name="/update
"class="solr.XmlUpdateRequestHandler"> <lst name="defaults"> <str
- name="update.processor">dedupe</str> </lst> </requestHandler>
+ name="update.chain">dedupe</str> </lst> </requestHandler>
-->
<updateRequestProcessorChain name="uima">
- <processor class="org.apache.solr.uima.processor.UIMAUpdateRequestProcessorFactory"/>
- <processor class="solr.LogUpdateProcessorFactory" />
+ <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">org.apache.uima.SentenceAnnotation</str>
+ <lst name="mapping">
+ <str name="feature">coveredText</str>
+ <str name="field">sentence</str>
+ </lst>
+ </lst>
+ <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="type">
+ <str name="name">org.apache.solr.uima.ts.EntityAnnotation</str>
+ <lst name="mapping">
+ <str name="feature">entity</str>
+ <str name="fieldNameFeature">name</str>
+ <str name="dynamicField">*_sm</str>
+ </lst>
+ </lst>
+ </lst>
+ </lst>
+ </processor>
<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>
+
+ <updateRequestProcessorChain name="uima-not-ignoreErrors">
+ <processor class="org.apache.solr.uima.processor.UIMAUpdateRequestProcessorFactory">
+ <lst name="uimaConfig">
+ <lst name="runtimeParameters">
+ <int name="ngramsize">3</int>
+ </lst>
+ <str name="analysisEngine">/TestExceptionAE.xml</str>
+ <bool name="ignoreErrors">false</bool>
+ <lst name="analyzeFields">
+ <bool name="merge">false</bool>
+ <arr name="fields">
+ <str>text</str>
+ </arr>
+ </lst>
+ <lst name="fieldMappings"/>
+ </lst>
+ </processor>
+ <processor class="solr.RunUpdateProcessorFactory" />
+ </updateRequestProcessorChain>
+ <updateRequestProcessorChain name="uima-ignoreErrors">
+ <processor class="org.apache.solr.uima.processor.UIMAUpdateRequestProcessorFactory">
+ <lst name="uimaConfig">
+ <lst name="runtimeParameters">
+ <int name="ngramsize">3</int>
+ </lst>
+ <str name="analysisEngine">/TestExceptionAE.xml</str>
+ <bool name="ignoreErrors">true</bool>
+ <!-- This is optional. It is used for logging when text processing fails. Usually, set uniqueKey field name -->
+ <str name="logField">id</str>
+ <lst name="analyzeFields">
+ <bool name="merge">false</bool>
+ <arr name="fields">
+ <str>text</str>
+ </arr>
+ </lst>
+ <lst name="fieldMappings"/>
+ </lst>
+ </processor>
+ <processor class="solr.RunUpdateProcessorFactory" />
+ </updateRequestProcessorChain>
<!--
queryResponseWriter plugins... query responses will be written using
@@ -1062,23 +1132,4 @@
-->
</admin>
-<uimaConfig>
- <runtimeParameters>
- <ngramsize>3</ngramsize>
- </runtimeParameters>
- <analysisEngine>/TestAE.xml</analysisEngine>
- <analyzeFields merge="false">text</analyzeFields>
- <fieldMapping>
- <type name="org.apache.uima.SentenceAnnotation">
- <map feature="coveredText" field="sentence"/>
- </type>
- <type name="org.apache.solr.uima.ts.SentimentAnnotation">
- <map feature="mood" field="sentiment"/>
- </type>
- <type name="org.apache.solr.uima.ts.EntityAnnotation">
- <map feature="coveredText" field="entity"/>
- </type>
- </fieldMapping>
-</uimaConfig>
-
</config>
Modified: lucene/dev/branches/solr2452/solr/example/exampledocs/books.json
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/exampledocs/books.json?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/exampledocs/books.json (original)
+++ lucene/dev/branches/solr2452/solr/example/exampledocs/books.json Sun May 22 21:45:19 2011
@@ -1,7 +1,5 @@
-{
-
-"add": {
- "doc": {
+[
+ {
"id" : "978-0641723445",
"cat" : ["book","hardcover"],
"title" : "The Lightning Thief",
@@ -13,11 +11,8 @@
"price" : 12.50,
"pages_i" : 384
}
-}
-
,
-"add": {
- "doc": {
+ {
"id" : "978-1423103349",
"cat" : ["book","paperback"],
"title" : "The Sea of Monsters",
@@ -29,6 +24,4 @@
"price" : 6.49,
"pages_i" : 304
}
-}
-
-}
+]
Modified: lucene/dev/branches/solr2452/solr/example/exampledocs/hd.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/exampledocs/hd.xml?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/exampledocs/hd.xml (original)
+++ lucene/dev/branches/solr2452/solr/example/exampledocs/hd.xml Sun May 22 21:45:19 2011
@@ -20,6 +20,8 @@
<field name="id">SP2514N</field>
<field name="name">Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133</field>
<field name="manu">Samsung Electronics Co. Ltd.</field>
+ <!-- Join -->
+ <field name="manu_id_s">samsung</field>
<field name="cat">electronics</field>
<field name="cat">hard drive</field>
<field name="features">7200RPM, 8MB cache, IDE Ultra ATA-133</field>
@@ -36,6 +38,8 @@
<field name="id">6H500F0</field>
<field name="name">Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300</field>
<field name="manu">Maxtor Corp.</field>
+ <!-- Join -->
+ <field name="manu_id_s">maxtor</field>
<field name="cat">electronics</field>
<field name="cat">hard drive</field>
<field name="features">SATA 3.0Gb/s, NCQ</field>
Modified: lucene/dev/branches/solr2452/solr/example/exampledocs/ipod_other.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/exampledocs/ipod_other.xml?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/exampledocs/ipod_other.xml (original)
+++ lucene/dev/branches/solr2452/solr/example/exampledocs/ipod_other.xml Sun May 22 21:45:19 2011
@@ -21,6 +21,8 @@
<field name="id">F8V7067-APL-KIT</field>
<field name="name">Belkin Mobile Power Cord for iPod w/ Dock</field>
<field name="manu">Belkin</field>
+ <!-- Join -->
+ <field name="manu_id_s">belkin</field>
<field name="cat">electronics</field>
<field name="cat">connector</field>
<field name="features">car power adapter, white</field>
@@ -37,6 +39,8 @@
<field name="id">IW-02</field>
<field name="name">iPod & iPod Mini USB 2.0 Cable</field>
<field name="manu">Belkin</field>
+ <!-- Join -->
+ <field name="manu_id_s">belkin</field>
<field name="cat">electronics</field>
<field name="cat">connector</field>
<field name="features">car power adapter for iPod, white</field>
Modified: lucene/dev/branches/solr2452/solr/example/exampledocs/ipod_video.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/exampledocs/ipod_video.xml?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/exampledocs/ipod_video.xml (original)
+++ lucene/dev/branches/solr2452/solr/example/exampledocs/ipod_video.xml Sun May 22 21:45:19 2011
@@ -19,6 +19,8 @@
<field name="id">MA147LL/A</field>
<field name="name">Apple 60 GB iPod with Video Playback Black</field>
<field name="manu">Apple Computer Inc.</field>
+ <!-- Join -->
+ <field name="manu_id_s">apple</field>
<field name="cat">electronics</field>
<field name="cat">music</field>
<field name="features">iTunes, Podcasts, Audiobooks</field>
Modified: lucene/dev/branches/solr2452/solr/example/exampledocs/mem.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/exampledocs/mem.xml?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/exampledocs/mem.xml (original)
+++ lucene/dev/branches/solr2452/solr/example/exampledocs/mem.xml Sun May 22 21:45:19 2011
@@ -20,6 +20,8 @@
<field name="id">TWINX2048-3200PRO</field>
<field name="name">CORSAIR XMS 2GB (2 x 1GB) 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) Dual Channel Kit System Memory - Retail</field>
<field name="manu">Corsair Microsystems Inc.</field>
+ <!-- Join -->
+ <field name="manu_id_s">corsair</field>
<field name="cat">electronics</field>
<field name="cat">memory</field>
<field name="features">CAS latency 2, 2-3-3-6 timing, 2.75v, unbuffered, heat-spreader</field>
@@ -38,6 +40,8 @@
<field name="id">VS1GB400C3</field>
<field name="name">CORSAIR ValueSelect 1GB 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) System Memory - Retail</field>
<field name="manu">Corsair Microsystems Inc.</field>
+ <!-- Join -->
+ <field name="manu_id_s">corsair</field>
<field name="cat">electronics</field>
<field name="cat">memory</field>
<field name="price">74.99</field>
@@ -54,6 +58,8 @@
<field name="id">VDBDB1A16</field>
<field name="name">A-DATA V-Series 1GB 184-Pin DDR SDRAM Unbuffered DDR 400 (PC 3200) System Memory - OEM</field>
<field name="manu">A-DATA Technology Inc.</field>
+ <!-- Join -->
+ <field name="manu_id_s">corsair</field>
<field name="cat">electronics</field>
<field name="cat">memory</field>
<field name="features">CAS latency 3, 2.7v</field>
Modified: lucene/dev/branches/solr2452/solr/example/exampledocs/monitor.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/exampledocs/monitor.xml?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/exampledocs/monitor.xml (original)
+++ lucene/dev/branches/solr2452/solr/example/exampledocs/monitor.xml Sun May 22 21:45:19 2011
@@ -19,6 +19,8 @@
<field name="id">3007WFP</field>
<field name="name">Dell Widescreen UltraSharp 3007WFP</field>
<field name="manu">Dell, Inc.</field>
+ <!-- Join -->
+ <field name="manu_id_s">dell</field>
<field name="cat">electronics</field>
<field name="cat">monitor</field>
<field name="features">30" TFT active matrix LCD, 2560 x 1600, .25mm dot pitch, 700:1 contrast</field>
Modified: lucene/dev/branches/solr2452/solr/example/exampledocs/monitor2.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/exampledocs/monitor2.xml?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/exampledocs/monitor2.xml (original)
+++ lucene/dev/branches/solr2452/solr/example/exampledocs/monitor2.xml Sun May 22 21:45:19 2011
@@ -19,6 +19,8 @@
<field name="id">VA902B</field>
<field name="name">ViewSonic VA902B - flat panel display - TFT - 19"</field>
<field name="manu">ViewSonic Corp.</field>
+ <!-- Join -->
+ <field name="manu_id_s">viewsonic</field>
<field name="cat">electronics</field>
<field name="cat">monitor</field>
<field name="features">19" TFT active matrix LCD, 8ms response time, 1280 x 1024 native resolution</field>
Modified: lucene/dev/branches/solr2452/solr/example/exampledocs/mp500.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/exampledocs/mp500.xml?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/exampledocs/mp500.xml (original)
+++ lucene/dev/branches/solr2452/solr/example/exampledocs/mp500.xml Sun May 22 21:45:19 2011
@@ -19,6 +19,8 @@
<field name="id">0579B002</field>
<field name="name">Canon PIXMA MP500 All-In-One Photo Printer</field>
<field name="manu">Canon Inc.</field>
+ <!-- Join -->
+ <field name="manu_id_s">canon</field>
<field name="cat">electronics</field>
<field name="cat">multifunction printer</field>
<field name="cat">printer</field>
Modified: lucene/dev/branches/solr2452/solr/example/exampledocs/sd500.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/exampledocs/sd500.xml?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/exampledocs/sd500.xml (original)
+++ lucene/dev/branches/solr2452/solr/example/exampledocs/sd500.xml Sun May 22 21:45:19 2011
@@ -19,6 +19,8 @@
<field name="id">9885A004</field>
<field name="name">Canon PowerShot SD500</field>
<field name="manu">Canon Inc.</field>
+ <!-- Join -->
+ <field name="manu_id_s">canon</field>
<field name="cat">electronics</field>
<field name="cat">camera</field>
<field name="features">3x zoop, 7.1 megapixel Digital ELPH</field>
Modified: lucene/dev/branches/solr2452/solr/example/exampledocs/vidcard.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/exampledocs/vidcard.xml?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/exampledocs/vidcard.xml (original)
+++ lucene/dev/branches/solr2452/solr/example/exampledocs/vidcard.xml Sun May 22 21:45:19 2011
@@ -19,7 +19,10 @@
<doc>
<field name="id">EN7800GTX/2DHTV/256M</field>
<field name="name">ASUS Extreme N7800GTX/2DHTV (256 MB)</field>
+ <!-- Denormalized -->
<field name="manu">ASUS Computer Inc.</field>
+ <!-- Join -->
+ <field name="manu_id_s">asus</field>
<field name="cat">electronics</field>
<field name="cat">graphics card</field>
<field name="features">NVIDIA GeForce 7800 GTX GPU/VPU clocked at 486MHz</field>
@@ -39,6 +42,8 @@
<field name="id">100-435805</field>
<field name="name">ATI Radeon X1900 XTX 512 MB PCIE Video Card</field>
<field name="manu">ATI Technologies</field>
+ <!-- Join -->
+ <field name="manu_id_s">ati</field>
<field name="cat">electronics</field>
<field name="cat">graphics card</field>
<field name="features">ATI RADEON X1900 GPU/VPU clocked at 650MHz</field>
Modified: lucene/dev/branches/solr2452/solr/example/solr/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/solr/conf/solrconfig.xml?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/solr/conf/solrconfig.xml (original)
+++ lucene/dev/branches/solr2452/solr/example/solr/conf/solrconfig.xml Sun May 22 21:45:19 2011
@@ -774,6 +774,7 @@
<str name="q.alt">*:*</str>
<str name="rows">10</str>
<str name="fl">*,score</str>
+
<str name="mlt.qf">
text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
</str>
@@ -792,6 +793,8 @@
<int name="facet.range.start">0</int>
<int name="facet.range.end">600</int>
<int name="facet.range.gap">50</int>
+ <str name="facet.range">popularity</str>
+ <int name="f.popularity.facet.range.gap">3</int>
<str name="facet.range.other">after</str>
<str name="facet.date">manufacturedate_dt</str>
<str name="facet.date.start">NOW/YEAR-10YEARS</str>
@@ -841,7 +844,7 @@
-->
<!--
<lst name="defaults">
- <str name="update.processor">dedupe</str>
+ <str name="update.chain">dedupe</str>
</lst>
-->
</requestHandler>
@@ -1195,17 +1198,20 @@
<lst name="engine">
<!-- The name, only one can be named "default" -->
<str name="name">default</str>
- <!-- Class name of Carrot2 clustering algorithm.
-
+
+ <!-- Class name of Carrot2 clustering algorithm.
+
Currently available algorithms are:
* org.carrot2.clustering.lingo.LingoClusteringAlgorithm
* org.carrot2.clustering.stc.STCClusteringAlgorithm
+ * org.carrot2.clustering.kmeans.BisectingKMeansClusteringAlgorithm
See http://project.carrot2.org/algorithms.html for the
algorithm's characteristics.
-->
<str name="carrot.algorithm">org.carrot2.clustering.lingo.LingoClusteringAlgorithm</str>
+
<!-- Overriding values for Carrot2 default algorithm attributes.
For a description of all available attributes, see:
@@ -1216,9 +1222,22 @@
name and attribute value as parameter value.
-->
<str name="LingoClusteringAlgorithm.desiredClusterCountBase">20</str>
-
+
+ <!-- Location of Carrot2 lexical resources.
+
+ A directory from which to load Carrot2-specific stop words
+ and stop labels. Absolute or relative to Solr config directory.
+ If a specific resource (e.g. stopwords.en) is present in the
+ specified dir, it will completely override the corresponding
+ default one that ships with Carrot2.
+
+ For an overview of Carrot2 lexical resources, see:
+ http://download.carrot2.org/head/manual/#chapter.lexical-resources
+ -->
+ <str name="carrot.lexicalResourcesDir">clustering/carrot2</str>
+
<!-- The language to assume for the documents.
-
+
For a list of allowed values, see:
http://download.carrot2.org/stable/manual/#section.attribute.lingo.MultilingualClustering.defaultLanguage
-->
@@ -1357,7 +1376,6 @@
<!-- Configure the standard encoder -->
<encoder name="html"
- default="true"
class="solr.highlight.HtmlEncoder" />
<!-- Configure the standard fragListBuilder -->
Modified: lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/VM_global_library.vm
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/VM_global_library.vm?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/VM_global_library.vm (original)
+++ lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/VM_global_library.vm Sun May 22 21:45:19 2011
@@ -88,13 +88,13 @@
<ul>
#foreach ($facet in $field)
#set($theDate = $date.toDate("yyyy-MM-dd'T'HH:mm:ss'Z'", $facet.key))
- #set($value = '["' + $facet.key + '" TO "' + $facet.key + $gap + '"]')
+ #set($value = '["' + $facet.key + '" TO "' + $facet.key + $gap + '"}')
#set($facetURL = "#url_for_facet_date_filter($fieldName, $value)")
#if ($facetURL != '')
#if ($facet.key != "gap" && $facet.key != "start" && $facet.key != "end" && $facet.key != "before" && $facet.key != "after")
- <li><a href="$facetURL">$date.format('MMM yyyy', $theDate)</a> ($facet.value)</li>
+ <li><a href="$facetURL">$date.format('MMM yyyy', $theDate) $gap</a> ($facet.value)</li>
#end
#if ($facet.key == "before" && $facet.value > 0)
<li><a href="$facetURL">Before</a> ($facet.value)</li>
@@ -113,20 +113,20 @@
<span class="facet-field">$display</span>
<ul>
#if($before && $before != "")
- #set($value = "[* TO " + $start + "]")
+ #set($value = "[* TO " + $start + "}")
#set($facetURL = "#url_for_facet_range_filter($fieldName, $value)")
<li><a href="$facetURL">Less than $start</a> ($before)</li>
#end
#foreach ($facet in $field)
#set($rangeEnd = $math.add($facet.key, $gap))
- #set($value = "[" + $facet.key + " TO " + $rangeEnd + "]")
+ #set($value = "[" + $facet.key + " TO " + $rangeEnd + "}")
#set($facetURL = "#url_for_facet_range_filter($fieldName, $value)")
#if ($facetURL != '')
- <li><a href="$facetURL">$facet.key</a> ($facet.value)</li>
+ <li><a href="$facetURL">$facet.key - $rangeEnd</a> ($facet.value)</li>
#end
#end
- #if($end && $end != "")
- #set($value = "[" + $end + " TO *]")
+ #if($end && $end != "" && $after > 0)
+ #set($value = "[" + $end + " TO *}")
#set($facetURL = "#url_for_facet_range_filter($fieldName, $value)")
<li><a href="$facetURL">More than $math.toNumber($end)</a> ($after)</li>
#end
@@ -180,4 +180,8 @@
$v
#end
#end
-#end
\ No newline at end of file
+#end
+
+#macro(capitalize $name)
+ ${name.substring(0,1).toUpperCase()}${name.substring(1)}
+#end
\ No newline at end of file
Modified: lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/doc.vm
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/doc.vm?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/doc.vm (original)
+++ lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/doc.vm Sun May 22 21:45:19 2011
@@ -26,4 +26,17 @@
#if($params.getBool("debugQuery",false))
<a href="#" onclick='jQuery(this).siblings("pre").toggle(); return false;'>toggle explain</a>
<pre style="display:none">$response.getExplainMap().get($doc.getFirstValue('id'))</pre>
+ <a href="#" onclick='jQuery(this).siblings("pre2").toggle(); return false;'>toggle all fields</a>
+ <pre2 style="display:none">
+ #foreach($fieldname in $doc.fieldNames)
+ <br>
+ <span class="field-name">$fieldname :</span>
+ <span>
+ #foreach($value in $doc.getFieldValues($fieldname))
+ $value
+ #end
+ </span>
+ #end
+ </br>
+ </pre2>
#end
\ No newline at end of file
Modified: lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/facet_dates.vm
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/facet_dates.vm?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/facet_dates.vm (original)
+++ lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/facet_dates.vm Sun May 22 21:45:19 2011
@@ -1,5 +1,9 @@
##TODO: Generically deal with all dates
<h2 #annTitle("Facets generated by adding &facet.date= to the request")>Date Facets</h2>
-#set($field = $response.response.facet_counts.facet_dates.manufacturedate_dt)
-#set($gap = $response.response.facet_counts.facet_dates.manufacturedate_dt.gap)
-#display_facet_date($field, "Manufacture Date", "manufacturedate_dt", $gap)
+#foreach ($field in $response.response.facet_counts.facet_dates)
+ #set($name = $field.key)
+ #set($display = "#capitalize($name)")
+ #set($f = $field.value)
+ #set($gap = $field.value.gap)
+ #display_facet_date($f, $display, $name, $gap)
+#end
\ No newline at end of file
Modified: lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/facet_ranges.vm
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/facet_ranges.vm?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/facet_ranges.vm (original)
+++ lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/facet_ranges.vm Sun May 22 21:45:19 2011
@@ -1,10 +1,12 @@
<h2 #annTitle("Facets generated by adding &facet.range= to the request")>Range Facets</h2>
-#set($field = $response.response.facet_counts.facet_ranges.price.counts)
-#set($start = $response.response.facet_counts.facet_ranges.price.start)
-#set($end = $response.response.facet_counts.facet_ranges.price.end)
-#set($gap = $response.response.facet_counts.facet_ranges.price.gap)
-#set($before = $response.response.facet_counts.facet_ranges.price.before)
-#set($after = $response.response.facet_counts.facet_ranges.price.after)
-##TODO: Make this display the "range", not just the lower value
-##TODO: Have a generic way to deal with ranges
-#display_facet_range($field, "Price (in $)", "price", $start, $end, $gap, $before, $after)
+#foreach ($field in $response.response.facet_counts.facet_ranges)
+ #set($name = $field.key)
+ #set($display = "#capitalize($name)")
+ #set($f = $field.value.counts)
+ #set($start = $field.value.start)
+ #set($end = $field.value.end)
+ #set($gap = $field.value.gap)
+ #set($before = $field.value.before)
+ #set($after = $field.value.after)
+ #display_facet_range($f, $display, $name, $start, $end, $gap, $before, $after)
+#end
\ No newline at end of file
Modified: lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/footer.vm
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/footer.vm?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/footer.vm (original)
+++ lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/footer.vm Sun May 22 21:45:19 2011
@@ -4,7 +4,7 @@
#if($request.params.get('debugQuery'))
<a href="#url_for_home?#q#if($list.size($request.params.getParams('fq')) > 0)&#fqs($request.params.getParams('fq'))#end">disable debug</a>
#else
- <a href="#url_for_lens&debugQuery=true">enable debug</a>
+ <a href="#url_for_lens&debugQuery=true&fl=*,score">enable debug</a>
#end
#if($annotate)
<a href="#url_for_home?#q#if($list.size($request.params.getParams('fq')) > 0)&#fqs($request.params.getParams('fq'))#end#boostPrice">disable annotation</a>
Modified: lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/main.css
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/main.css?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/main.css (original)
+++ lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/main.css Sun May 22 21:45:19 2011
@@ -18,6 +18,18 @@
margin-left: 20px;
}
+.parsed_query_header {
+ font-family: Helvetica, Arial, sans-serif;
+ font-size: 10pt;
+ font-weight: bold;
+}
+
+.parsed_query {
+ font-family: Courier, Courier New, monospaced;
+ font-size: 10pt;
+ font-weight: normal;
+}
+
body {
font-family: Helvetica, Arial, sans-serif;
font-size: 10pt;
Modified: lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/query.vm
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/query.vm?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/query.vm (original)
+++ lucene/dev/branches/solr2452/solr/example/solr/conf/velocity/query.vm Sun May 22 21:45:19 2011
@@ -27,14 +27,16 @@
#end
#end
</div>
+ <div class="parsed_query_header">
#if($request.params.get('debugQuery'))
- <a href="#" onclick='jQuery(this).siblings("pre").toggle(); return false;'>toggle parsed query</a>
- <pre style="display:none">$response.response.debug.parsedquery</pre>
+ <a href="#" onclick='jQuery(this).siblings("div").toggle(); return false;'>toggle parsed query</a>
+ <div class="parsed_query" style="display:none">$response.response.debug.parsedquery</div>
#end
#set($queryOpts = $request.params.get("queryOpts"))
#if($queryOpts && $queryOpts != "")
<input type="hidden" name="queryOpts" value="$queryOpts"/>
#end
+ </div>
</form>
</div>
Modified: lucene/dev/branches/solr2452/solr/lib/apache-solr-noggit-pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/lib/apache-solr-noggit-pom.xml.template?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/lib/apache-solr-noggit-pom.xml.template (original)
+++ lucene/dev/branches/solr2452/solr/lib/apache-solr-noggit-pom.xml.template Sun May 22 21:45:19 2011
@@ -31,6 +31,6 @@
<artifactId>solr-noggit</artifactId>
<name>Solr Specific Noggit</name>
<version>@version@</version>
- <description>Solr Specific Noggit r944541</description>
+ <description>Solr Specific Noggit r1099557</description>
<packaging>jar</packaging>
</project>
Modified: lucene/dev/branches/solr2452/solr/site/features.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/site/features.html?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/site/features.html (original)
+++ lucene/dev/branches/solr2452/solr/site/features.html Sun May 22 21:45:19 2011
@@ -130,6 +130,9 @@ document.write("Last Published: " + docu
<div class="menuitem">
<a href="api/solrj/index.html">SolrJ Javadoc</a>
</div>
+<div class="menuitem">
+<a href="api/test-framework/index.html">Test Framework Javadoc</a>
+</div>
</div>
<div onclick="SwitchMenu('menu_1.3', 'skin/')" id="menu_1.3Title" class="menutitle">Resources</div>
<div id="menu_1.3" class="menuitemgroup">
Modified: lucene/dev/branches/solr2452/solr/site/index.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/site/index.html?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/site/index.html (original)
+++ lucene/dev/branches/solr2452/solr/site/index.html Sun May 22 21:45:19 2011
@@ -130,6 +130,9 @@ document.write("Last Published: " + docu
<div class="menuitem">
<a href="api/solrj/index.html">SolrJ Javadoc</a>
</div>
+<div class="menuitem">
+<a href="api/test-framework/index.html">Test Framework Javadoc</a>
+</div>
</div>
<div onclick="SwitchMenu('menu_1.3', 'skin/')" id="menu_1.3Title" class="menutitle">Resources</div>
<div id="menu_1.3" class="menuitemgroup">
Modified: lucene/dev/branches/solr2452/solr/site/issue_tracking.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/site/issue_tracking.html?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/site/issue_tracking.html (original)
+++ lucene/dev/branches/solr2452/solr/site/issue_tracking.html Sun May 22 21:45:19 2011
@@ -130,6 +130,9 @@ document.write("Last Published: " + docu
<div class="menuitem">
<a href="api/solrj/index.html">SolrJ Javadoc</a>
</div>
+<div class="menuitem">
+<a href="api/test-framework/index.html">Test Framework Javadoc</a>
+</div>
</div>
<div onclick="SwitchMenu('menu_selected_1.3', 'skin/')" id="menu_selected_1.3Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Resources</div>
<div id="menu_selected_1.3" class="selectedmenuitemgroup" style="display: block;">
Modified: lucene/dev/branches/solr2452/solr/site/linkmap.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/site/linkmap.html?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/site/linkmap.html (original)
+++ lucene/dev/branches/solr2452/solr/site/linkmap.html Sun May 22 21:45:19 2011
@@ -130,6 +130,9 @@ document.write("Last Published: " + docu
<div class="menuitem">
<a href="api/solrj/index.html">SolrJ Javadoc</a>
</div>
+<div class="menuitem">
+<a href="api/test-framework/index.html">Test Framework Javadoc</a>
+</div>
</div>
<div onclick="SwitchMenu('menu_1.3', 'skin/')" id="menu_1.3Title" class="menutitle">Resources</div>
<div id="menu_1.3" class="menuitemgroup">
@@ -285,6 +288,12 @@ document.write("Last Published: " + docu
<a href="api/solrj/index.html">SolrJ Javadoc</a> ___________________ <em>apidocs</em>
</li>
</ul>
+
+<ul>
+<li>
+<a href="api/test-framework/index.html">Test Framework Javadoc</a> ___________________ <em>apidocs</em>
+</li>
+</ul>
</ul>
</ul>
Modified: lucene/dev/branches/solr2452/solr/site/linkmap.pdf
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/site/linkmap.pdf?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
Binary files - no diff available.
Modified: lucene/dev/branches/solr2452/solr/site/mailing_lists.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/site/mailing_lists.html?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/site/mailing_lists.html (original)
+++ lucene/dev/branches/solr2452/solr/site/mailing_lists.html Sun May 22 21:45:19 2011
@@ -130,6 +130,9 @@ document.write("Last Published: " + docu
<div class="menuitem">
<a href="api/solrj/index.html">SolrJ Javadoc</a>
</div>
+<div class="menuitem">
+<a href="api/test-framework/index.html">Test Framework Javadoc</a>
+</div>
</div>
<div onclick="SwitchMenu('menu_selected_1.3', 'skin/')" id="menu_selected_1.3Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Resources</div>
<div id="menu_selected_1.3" class="selectedmenuitemgroup" style="display: block;">
Modified: lucene/dev/branches/solr2452/solr/site/skin/basic.css
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/site/skin/basic.css?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/site/skin/basic.css (original)
+++ lucene/dev/branches/solr2452/solr/site/skin/basic.css Sun May 22 21:45:19 2011
@@ -163,4 +163,4 @@ p {
.codefrag {
font-family: "Courier New", Courier, monospace;
font-size: 110%;
-}
\ No newline at end of file
+}
Modified: lucene/dev/branches/solr2452/solr/site/skin/print.css
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/site/skin/print.css?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/site/skin/print.css (original)
+++ lucene/dev/branches/solr2452/solr/site/skin/print.css Sun May 22 21:45:19 2011
@@ -51,4 +51,4 @@ a:link, a:visited {
acronym {
border: 0;
-}
\ No newline at end of file
+}
Modified: lucene/dev/branches/solr2452/solr/site/skin/profile.css
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/site/skin/profile.css?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/site/skin/profile.css (original)
+++ lucene/dev/branches/solr2452/solr/site/skin/profile.css Sun May 22 21:45:19 2011
@@ -172,4 +172,4 @@ a:hover { color:#6587ff}
}
-
\ No newline at end of file
+
Modified: lucene/dev/branches/solr2452/solr/site/skin/screen.css
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/site/skin/screen.css?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/site/skin/screen.css (original)
+++ lucene/dev/branches/solr2452/solr/site/skin/screen.css Sun May 22 21:45:19 2011
@@ -584,4 +584,4 @@ p.instruction {
list-style-image: url('../images/instruction_arrow.png');
list-style-position: outside;
margin-left: 2em;
-}
\ No newline at end of file
+}
Modified: lucene/dev/branches/solr2452/solr/site/tutorial.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/site/tutorial.html?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/site/tutorial.html (original)
+++ lucene/dev/branches/solr2452/solr/site/tutorial.html Sun May 22 21:45:19 2011
@@ -130,6 +130,9 @@ document.write("Last Published: " + docu
<div class="menuitem">
<a href="api/solrj/index.html">SolrJ Javadoc</a>
</div>
+<div class="menuitem">
+<a href="api/test-framework/index.html">Test Framework Javadoc</a>
+</div>
</div>
<div onclick="SwitchMenu('menu_1.3', 'skin/')" id="menu_1.3Title" class="menutitle">Resources</div>
<div id="menu_1.3" class="menuitemgroup">
Modified: lucene/dev/branches/solr2452/solr/site/version_control.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/site/version_control.html?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/site/version_control.html (original)
+++ lucene/dev/branches/solr2452/solr/site/version_control.html Sun May 22 21:45:19 2011
@@ -130,6 +130,9 @@ document.write("Last Published: " + docu
<div class="menuitem">
<a href="api/solrj/index.html">SolrJ Javadoc</a>
</div>
+<div class="menuitem">
+<a href="api/test-framework/index.html">Test Framework Javadoc</a>
+</div>
</div>
<div onclick="SwitchMenu('menu_selected_1.3', 'skin/')" id="menu_selected_1.3Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Resources</div>
<div id="menu_selected_1.3" class="selectedmenuitemgroup" style="display: block;">
Modified: lucene/dev/branches/solr2452/solr/src/common/org/apache/solr/common/SolrDocumentList.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/common/org/apache/solr/common/SolrDocumentList.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/common/org/apache/solr/common/SolrDocumentList.java (original)
+++ lucene/dev/branches/solr2452/solr/src/common/org/apache/solr/common/SolrDocumentList.java Sun May 22 21:45:19 2011
@@ -61,7 +61,7 @@ public class SolrDocumentList extends Ar
public String toString() {
return "{numFound="+numFound
+",start="+start
- + (maxScore!=null ? ""+maxScore : "")
+ + (maxScore!=null ? ",maxScore="+maxScore : "")
+",docs="+super.toString()
+"}";
}
Modified: lucene/dev/branches/solr2452/solr/src/common/org/apache/solr/common/params/UpdateParams.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/common/org/apache/solr/common/params/UpdateParams.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/common/org/apache/solr/common/params/UpdateParams.java (original)
+++ lucene/dev/branches/solr2452/solr/src/common/org/apache/solr/common/params/UpdateParams.java Sun May 22 21:45:19 2011
@@ -43,8 +43,11 @@ public interface UpdateParams
/** Rollback update commands */
public static String ROLLBACK = "rollback";
- /** Select the update processor to use. A RequestHandler may or may not respect this parameter */
- public static final String UPDATE_PROCESSOR = "update.processor";
+ /** Select the update processor chain to use. A RequestHandler may or may not respect this parameter */
+ public static final String UPDATE_CHAIN = "update.chain";
+ // TODO: Include the old deprecated param, for removal in Solr 4.0
+ public static final String UPDATE_CHAIN_DEPRECATED = "update.processor";
+
/**
* If optimizing, set the maximum number of segments left in the index after optimization. 1 is the default (and is equivalent to calling IndexWriter.optimize() in Lucene).
*/
Modified: lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/analysis/PathHierarchyTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/analysis/PathHierarchyTokenizerFactory.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/analysis/PathHierarchyTokenizerFactory.java (original)
+++ lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/analysis/PathHierarchyTokenizerFactory.java Sun May 22 21:45:19 2011
@@ -21,6 +21,7 @@ import java.util.Map;
import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.path.PathHierarchyTokenizer;
+import org.apache.lucene.analysis.path.ReversePathHierarchyTokenizer;
/**
@@ -37,6 +38,8 @@ public class PathHierarchyTokenizerFacto
private char delimiter;
private char replacement;
+ private boolean reverse = false;
+ private int skip = PathHierarchyTokenizer.DEFAULT_SKIP;
/**
* Require a configured pattern
@@ -70,10 +73,23 @@ public class PathHierarchyTokenizerFacto
else{
replacement = delimiter;
}
+
+ v = args.get( "reverse" );
+ if( v != null ){
+ reverse = "true".equals( v );
+ }
+
+ v = args.get( "skip" );
+ if( v != null ){
+ skip = Integer.parseInt( v );
+ }
}
public Tokenizer create(Reader input) {
- return new PathHierarchyTokenizer(input, delimiter, replacement);
+ if( reverse ) {
+ return new ReversePathHierarchyTokenizer(input, delimiter, replacement, skip);
+ }
+ return new PathHierarchyTokenizer(input, delimiter, replacement, skip);
}
}
Modified: lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/analysis/SynonymFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/analysis/SynonymFilterFactory.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/analysis/SynonymFilterFactory.java (original)
+++ lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/analysis/SynonymFilterFactory.java Sun May 22 21:45:19 2011
@@ -61,6 +61,16 @@ public class SynonymFilterFactory extend
tokFactory = loadTokenizerFactory( loader, tf, args );
}
+ Iterable<String> wlist=loadRules( synonyms, loader );
+
+ synMap = new SynonymMap(ignoreCase);
+ parseRules(wlist, synMap, "=>", ",", expand,tokFactory);
+ }
+
+ /**
+ * @return a list of all rules
+ */
+ protected Iterable<String> loadRules( String synonyms, ResourceLoader loader ) {
List<String> wlist=null;
try {
File synonymFile = new File(synonyms);
@@ -77,13 +87,12 @@ public class SynonymFilterFactory extend
} catch (IOException e) {
throw new RuntimeException(e);
}
- synMap = new SynonymMap(ignoreCase);
- parseRules(wlist, synMap, "=>", ",", expand,tokFactory);
+ return wlist;
}
private SynonymMap synMap;
- static void parseRules(List<String> rules, SynonymMap map, String mappingSep,
+ static void parseRules(Iterable<String> rules, SynonymMap map, String mappingSep,
String synSep, boolean expansion, TokenizerFactory tokFactory) {
int count=0;
for (String rule : rules) {
Modified: lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/AbstractSolrEventListener.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/AbstractSolrEventListener.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/AbstractSolrEventListener.java (original)
+++ lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/AbstractSolrEventListener.java Sun May 22 21:45:19 2011
@@ -23,7 +23,7 @@ import org.apache.solr.search.SolrIndexS
/**
*/
-class AbstractSolrEventListener implements SolrEventListener {
+public class AbstractSolrEventListener implements SolrEventListener {
protected final SolrCore core;
public AbstractSolrEventListener(SolrCore core) {
this.core = core;
Modified: lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/CoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/CoreContainer.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/CoreContainer.java (original)
+++ lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/CoreContainer.java Sun May 22 21:45:19 2011
@@ -79,6 +79,7 @@ public class CoreContainer
protected Map<String ,IndexSchema> indexSchemaCache;
protected String adminHandler;
protected boolean shareSchema;
+ protected Integer zkClientTimeout;
protected String solrHome;
protected String defaultCoreName = "";
private ZkController zkController;
@@ -313,7 +314,7 @@ public class CoreContainer
zkHost = cfg.get("solr/@zkHost" , null);
adminPath = cfg.get("solr/cores/@adminPath", null);
shareSchema = cfg.getBool("solr/cores/@shareSchema", false);
- int zkClientTimeout = cfg.getInt("solr/cores/@zkClientTimeout", 10000);
+ zkClientTimeout = cfg.getInt("solr/cores/@zkClientTimeout", 10000);
hostPort = System.getProperty("hostPort");
if (hostPort == null) {
@@ -500,7 +501,12 @@ public class CoreContainer
SolrCore old = null;
synchronized (cores) {
old = cores.put(name, core);
+ /*
+ * set both the name of the descriptor and the name of the
+ * core, since the descriptors name is used for persisting.
+ */
core.setName(name);
+ core.getCoreDescriptor().name = name;
}
if (zkController != null) {
@@ -884,6 +890,7 @@ public class CoreContainer
if (this.libDir != null) {
writeAttribute(w,"sharedLib",libDir);
}
+ if(zkHost != null) writeAttribute(w, "zkHost", zkHost);
writeAttribute(w,"persistent",isPersistent());
w.write(">\n");
@@ -892,9 +899,13 @@ public class CoreContainer
}
w.write(" <cores");
writeAttribute(w, "adminPath",adminPath);
- if(adminHandler != null) writeAttribute(w, "adminHandler",adminHandler);
- if(shareSchema) writeAttribute(w, "shareSchema","true");
- if(!defaultCoreName.equals("")) writeAttribute(w, "defaultCoreName",defaultCoreName);
+ if(adminHandler != null) writeAttribute(w, "adminHandler", adminHandler);
+ if(shareSchema) writeAttribute(w, "shareSchema", "true");
+ if(!defaultCoreName.equals("")) writeAttribute(w, "defaultCoreName", defaultCoreName);
+ if(host != null) writeAttribute(w, "host", host);
+ if(hostPort != null) writeAttribute(w, "hostPort", hostPort);
+ if(zkClientTimeout != null) writeAttribute(w, "zkClientTimeout", zkClientTimeout);
+ if(hostContext != null) writeAttribute(w, "hostContext", hostContext);
w.write(">\n");
synchronized(cores) {
Modified: lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/QuerySenderListener.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/QuerySenderListener.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/QuerySenderListener.java (original)
+++ lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/QuerySenderListener.java Sun May 22 21:45:19 2011
@@ -32,7 +32,7 @@ import java.util.List;
/**
* @version $Id$
*/
-class QuerySenderListener extends AbstractSolrEventListener {
+public class QuerySenderListener extends AbstractSolrEventListener {
public QuerySenderListener(SolrCore core) {
super(core);
}
Modified: lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/SolrConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/SolrConfig.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/SolrConfig.java (original)
+++ lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/core/SolrConfig.java Sun May 22 21:45:19 2011
@@ -57,7 +57,6 @@ import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.io.FileFilter;
import java.io.IOException;
-import java.io.InputStream;
/**
@@ -130,12 +129,12 @@ public class SolrConfig extends Config {
throws ParserConfigurationException, IOException, SAXException {
super(loader, name, is, "/config/");
initLibs();
+ luceneMatchVersion = getLuceneVersion("luceneMatchVersion");
defaultIndexConfig = new SolrIndexConfig(this, null, null);
mainIndexConfig = new SolrIndexConfig(this, "mainIndex", defaultIndexConfig);
reopenReaders = getBool("mainIndex/reopenReaders", true);
booleanQueryMaxClauseCount = getInt("query/maxBooleanClauses", BooleanQuery.getMaxClauseCount());
- luceneMatchVersion = getLuceneVersion("luceneMatchVersion");
log.info("Using Lucene MatchVersion: " + luceneMatchVersion);
filtOptEnabled = getBool("query/boolTofilterOptimizer/@enabled", false);
Modified: lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java (original)
+++ lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java Sun May 22 21:45:19 2011
@@ -337,6 +337,7 @@ public abstract class AnalysisRequestHan
@Override
public boolean incrementToken() throws IOException {
if (tokenIterator.hasNext()) {
+ clearAttributes();
AttributeSource next = tokenIterator.next();
Iterator<Class<? extends Attribute>> atts = next.getAttributeClassesIterator();
while (atts.hasNext()) // make sure all att impls in the token exist here
Modified: lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/ContentStreamHandlerBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/ContentStreamHandlerBase.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/ContentStreamHandlerBase.java (original)
+++ lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/ContentStreamHandlerBase.java Sun May 22 21:45:19 2011
@@ -24,6 +24,8 @@ import org.apache.solr.request.SolrQuery
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.update.processor.UpdateRequestProcessor;
import org.apache.solr.update.processor.UpdateRequestProcessorChain;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
@@ -31,12 +33,22 @@ import org.apache.solr.update.processor.
*
**/
public abstract class ContentStreamHandlerBase extends RequestHandlerBase {
+ public static Logger log = LoggerFactory.getLogger(XmlUpdateRequestHandler.class);
@Override
public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception {
SolrParams params = req.getParams();
+ String updateChainName = null;
+ if(params.get(UpdateParams.UPDATE_CHAIN_DEPRECATED) != null) {
+ log.warn("Use of deprecated update request parameter "+UpdateParams.UPDATE_CHAIN_DEPRECATED+
+ " detected. Please use the new parameter "+UpdateParams.UPDATE_CHAIN+" instead, as support"+
+ " for "+UpdateParams.UPDATE_CHAIN_DEPRECATED+" will be removed in a later version.");
+ updateChainName = params.get(UpdateParams.UPDATE_CHAIN_DEPRECATED);
+ } else {
+ updateChainName = params.get(UpdateParams.UPDATE_CHAIN);
+ }
UpdateRequestProcessorChain processorChain =
- req.getCore().getUpdateProcessingChain(params.get(UpdateParams.UPDATE_PROCESSOR));
+ req.getCore().getUpdateProcessingChain(updateChainName);
UpdateRequestProcessor processor = processorChain.createProcessor(req, rsp);
Modified: lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/JsonLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/JsonLoader.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/JsonLoader.java (original)
+++ lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/JsonLoader.java Sun May 22 21:45:19 2011
@@ -23,6 +23,7 @@ import java.util.Stack;
import org.apache.commons.io.IOUtils;
import org.apache.noggit.JSONParser;
+import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.SolrInputField;
import org.apache.solr.common.util.ContentStream;
@@ -43,10 +44,18 @@ import org.slf4j.LoggerFactory;
class JsonLoader extends ContentStreamLoader {
final static Logger log = LoggerFactory.getLogger( JsonLoader.class );
- protected UpdateRequestProcessor processor;
+ protected final UpdateRequestProcessor processor;
+ protected final SolrQueryRequest req;
+ protected JSONParser parser;
+ protected final int commitWithin;
+ protected final boolean overwrite;
- public JsonLoader(UpdateRequestProcessor processor) {
+ public JsonLoader(SolrQueryRequest req, UpdateRequestProcessor processor) {
this.processor = processor;
+ this.req = req;
+
+ commitWithin = req.getParams().getInt(XmlUpdateRequestHandler.COMMIT_WITHIN, -1);
+ overwrite = req.getParams().getBool(XmlUpdateRequestHandler.OVERWRITE, true);
}
@Override
@@ -55,14 +64,14 @@ class JsonLoader extends ContentStreamLo
Reader reader = null;
try {
reader = stream.getReader();
- if (XmlUpdateRequestHandler.log.isTraceEnabled()) {
+ if (log.isTraceEnabled()) {
String body = IOUtils.toString(reader);
- XmlUpdateRequestHandler.log.trace("body", body);
+ log.trace("body", body);
reader = new StringReader(body);
}
- JSONParser parser = new JSONParser(reader);
- this.processUpdate(req, processor, parser);
+ parser = new JSONParser(reader);
+ this.processUpdate();
}
finally {
IOUtils.closeQuietly(reader);
@@ -70,39 +79,50 @@ class JsonLoader extends ContentStreamLo
}
@SuppressWarnings("fallthrough")
- void processUpdate(SolrQueryRequest req, UpdateRequestProcessor processor, JSONParser parser) throws IOException
+ void processUpdate() throws IOException
{
int ev = parser.nextEvent();
while( ev != JSONParser.EOF ) {
switch( ev )
{
+ case JSONParser.ARRAY_START:
+ handleAdds();
+ break;
+
case JSONParser.STRING:
if( parser.wasKey() ) {
String v = parser.getString();
if( v.equals( XmlUpdateRequestHandler.ADD ) ) {
- processor.processAdd( parseAdd(req, parser ) );
+ int ev2 = parser.nextEvent();
+ if (ev2 == JSONParser.OBJECT_START) {
+ processor.processAdd( parseAdd() );
+ } else if (ev2 == JSONParser.ARRAY_START) {
+ handleAdds();
+ } else {
+ assertEvent(ev2, JSONParser.OBJECT_START);
+ }
}
else if( v.equals( XmlUpdateRequestHandler.COMMIT ) ) {
CommitUpdateCommand cmd = new CommitUpdateCommand(req, false );
cmd.waitFlush = cmd.waitSearcher = true;
- parseCommitOptions( parser, cmd );
+ parseCommitOptions( cmd );
processor.processCommit( cmd );
}
else if( v.equals( XmlUpdateRequestHandler.OPTIMIZE ) ) {
CommitUpdateCommand cmd = new CommitUpdateCommand(req, true );
cmd.waitFlush = cmd.waitSearcher = true;
- parseCommitOptions( parser, cmd );
+ parseCommitOptions( cmd );
processor.processCommit( cmd );
}
else if( v.equals( XmlUpdateRequestHandler.DELETE ) ) {
- processor.processDelete( parseDelete(req, parser ) );
+ processor.processDelete( parseDelete() );
}
else if( v.equals( XmlUpdateRequestHandler.ROLLBACK ) ) {
- processor.processRollback( parseRollback(req, parser ) );
+ processor.processRollback( parseRollback() );
}
else {
- throw new IOException( "Unknown command: "+v+" ["+parser.getPosition()+"]" );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Unknown command: "+v+" ["+parser.getPosition()+"]" );
}
break;
}
@@ -117,12 +137,11 @@ class JsonLoader extends ContentStreamLo
case JSONParser.OBJECT_START:
case JSONParser.OBJECT_END:
- case JSONParser.ARRAY_START:
case JSONParser.ARRAY_END:
break;
default:
- System.out.println("UNKNOWN_EVENT_ID:"+ev);
+ log.info("Noggit UNKNOWN_EVENT_ID:"+ev);
break;
}
// read the next event
@@ -130,187 +149,211 @@ class JsonLoader extends ContentStreamLo
}
}
- DeleteUpdateCommand parseDelete(SolrQueryRequest req, JSONParser js) throws IOException {
- assertNextEvent( js, JSONParser.OBJECT_START );
+ DeleteUpdateCommand parseDelete() throws IOException {
+ assertNextEvent( JSONParser.OBJECT_START );
DeleteUpdateCommand cmd = new DeleteUpdateCommand(req);
-
+
while( true ) {
- int ev = js.nextEvent();
+ int ev = parser.nextEvent();
if( ev == JSONParser.STRING ) {
- String key = js.getString();
- if( js.wasKey() ) {
+ String key = parser.getString();
+ if( parser.wasKey() ) {
if( "id".equals( key ) ) {
- cmd.id = js.getString();
+ cmd.id = parser.getString();
}
else if( "query".equals(key) ) {
- cmd.query = js.getString();
+ cmd.query = parser.getString();
}
else {
- throw new IOException( "Unknown key: "+key+" ["+js.getPosition()+"]" );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Unknown key: "+key+" ["+parser.getPosition()+"]" );
}
}
else {
- throw new IOException(
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
"invalid string: " + key
- +" at ["+js.getPosition()+"]" );
+ +" at ["+parser.getPosition()+"]" );
}
}
else if( ev == JSONParser.OBJECT_END ) {
if( cmd.id == null && cmd.query == null ) {
- throw new IOException( "Missing id or query for delete ["+js.getPosition()+"]" );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Missing id or query for delete ["+parser.getPosition()+"]" );
}
return cmd;
}
else {
- throw new IOException(
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
"Got: "+JSONParser.getEventString( ev )
- +" at ["+js.getPosition()+"]" );
+ +" at ["+parser.getPosition()+"]" );
}
}
}
- RollbackUpdateCommand parseRollback(SolrQueryRequest req, JSONParser js) throws IOException {
- assertNextEvent( js, JSONParser.OBJECT_START );
- assertNextEvent( js, JSONParser.OBJECT_END );
+ RollbackUpdateCommand parseRollback() throws IOException {
+ assertNextEvent( JSONParser.OBJECT_START );
+ assertNextEvent( JSONParser.OBJECT_END );
return new RollbackUpdateCommand(req);
}
- void parseCommitOptions( JSONParser js, CommitUpdateCommand cmd ) throws IOException
+ void parseCommitOptions(CommitUpdateCommand cmd ) throws IOException
{
- assertNextEvent( js, JSONParser.OBJECT_START );
+ assertNextEvent( JSONParser.OBJECT_START );
while( true ) {
- int ev = js.nextEvent();
+ int ev = parser.nextEvent();
if( ev == JSONParser.STRING ) {
- String key = js.getString();
- if( js.wasKey() ) {
+ String key = parser.getString();
+ if( parser.wasKey() ) {
if( XmlUpdateRequestHandler.WAIT_SEARCHER.equals( key ) ) {
- cmd.waitSearcher = js.getBoolean();
+ cmd.waitSearcher = parser.getBoolean();
}
else if( XmlUpdateRequestHandler.WAIT_FLUSH.equals( key ) ) {
- cmd.waitFlush = js.getBoolean();
+ cmd.waitFlush = parser.getBoolean();
}
else {
- throw new IOException( "Unknown key: "+key+" ["+js.getPosition()+"]" );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Unknown key: "+key+" ["+parser.getPosition()+"]" );
}
}
else {
- throw new IOException(
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
"invalid string: " + key
- +" at ["+js.getPosition()+"]" );
+ +" at ["+parser.getPosition()+"]" );
}
}
else if( ev == JSONParser.OBJECT_END ) {
return;
}
else {
- throw new IOException(
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
"Got: "+JSONParser.getEventString( ev )
- +" at ["+js.getPosition()+"]" );
+ +" at ["+parser.getPosition()+"]" );
}
}
}
- AddUpdateCommand parseAdd(SolrQueryRequest req, JSONParser js ) throws IOException
+ AddUpdateCommand parseAdd() throws IOException
{
- assertNextEvent( js, JSONParser.OBJECT_START );
AddUpdateCommand cmd = new AddUpdateCommand(req);
+ cmd.commitWithin = commitWithin;
+ cmd.overwrite = overwrite;
+
float boost = 1.0f;
while( true ) {
- int ev = js.nextEvent();
+ int ev = parser.nextEvent();
if( ev == JSONParser.STRING ) {
- if( js.wasKey() ) {
- String key = js.getString();
+ if( parser.wasKey() ) {
+ String key = parser.getString();
if( "doc".equals( key ) ) {
if( cmd.solrDoc != null ) {
- throw new IOException( "multiple docs in same add command" );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "multiple docs in same add command" );
}
- ev = assertNextEvent( js, JSONParser.OBJECT_START );
- cmd.solrDoc = parseDoc( ev, js );
+ ev = assertNextEvent( JSONParser.OBJECT_START );
+ cmd.solrDoc = parseDoc( ev );
}
else if( XmlUpdateRequestHandler.OVERWRITE.equals( key ) ) {
- cmd.overwrite = js.getBoolean(); // reads next boolean
+ cmd.overwrite = parser.getBoolean(); // reads next boolean
}
else if( XmlUpdateRequestHandler.COMMIT_WITHIN.equals( key ) ) {
- cmd.commitWithin = (int)js.getLong();
+ cmd.commitWithin = (int)parser.getLong();
}
else if( "boost".equals( key ) ) {
- boost = Float.parseFloat( js.getNumberChars().toString() );
+ boost = Float.parseFloat( parser.getNumberChars().toString() );
}
else {
- throw new IOException( "Unknown key: "+key+" ["+js.getPosition()+"]" );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Unknown key: "+key+" ["+parser.getPosition()+"]" );
}
}
else {
- throw new IOException(
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
"Should be a key "
- +" at ["+js.getPosition()+"]" );
+ +" at ["+parser.getPosition()+"]" );
}
}
else if( ev == JSONParser.OBJECT_END ) {
if( cmd.solrDoc == null ) {
- throw new IOException("missing solr document. "+js.getPosition() );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,"missing solr document. "+parser.getPosition() );
}
cmd.solrDoc.setDocumentBoost( boost );
return cmd;
}
else {
- throw new IOException(
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
"Got: "+JSONParser.getEventString( ev )
- +" at ["+js.getPosition()+"]" );
+ +" at ["+parser.getPosition()+"]" );
}
}
}
-
- int assertNextEvent( JSONParser parser, int ev ) throws IOException
+
+
+ void handleAdds() throws IOException
+ {
+ while( true ) {
+ AddUpdateCommand cmd = new AddUpdateCommand(req);
+ cmd.commitWithin = commitWithin;
+ cmd.overwrite = overwrite;
+
+ int ev = parser.nextEvent();
+ if (ev == JSONParser.ARRAY_END) break;
+
+ assertEvent(ev, JSONParser.OBJECT_START);
+ cmd.solrDoc = parseDoc(ev);
+ processor.processAdd(cmd);
+ }
+ }
+
+
+ int assertNextEvent(int expected ) throws IOException
{
int got = parser.nextEvent();
- if( ev != got ) {
- throw new IOException(
- "Expected: "+JSONParser.getEventString( ev )
- +" but got "+JSONParser.getEventString( got )
+ assertEvent(got, expected);
+ return got;
+ }
+
+ void assertEvent(int ev, int expected) {
+ if( ev != expected ) {
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
+ "Expected: "+JSONParser.getEventString( expected )
+ +" but got "+JSONParser.getEventString( ev )
+" at ["+parser.getPosition()+"]" );
}
- return got;
}
- SolrInputDocument parseDoc( int ev, JSONParser js ) throws IOException
+ SolrInputDocument parseDoc(int ev) throws IOException
{
Stack<Object> stack = new Stack<Object>();
Object obj = null;
boolean inArray = false;
if( ev != JSONParser.OBJECT_START ) {
- throw new IOException( "object should already be started" );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "object should already be started" );
}
while( true ) {
- //System.out.println( ev + "["+JSONParser.getEventString(ev)+"] "+js.wasKey() ); //+ js.getString() );
+ //System.out.println( ev + "["+JSONParser.getEventString(ev)+"] "+parser.wasKey() ); //+ parser.getString() );
switch (ev) {
case JSONParser.STRING:
- if( js.wasKey() ) {
+ if( parser.wasKey() ) {
obj = stack.peek();
- String v = js.getString();
+ String v = parser.getString();
if( obj instanceof SolrInputField ) {
SolrInputField field = (SolrInputField)obj;
if( "boost".equals( v ) ) {
- ev = js.nextEvent();
+ ev = parser.nextEvent();
if( ev != JSONParser.NUMBER &&
ev != JSONParser.LONG &&
ev != JSONParser.BIGNUMBER ) {
- throw new IOException( "boost should have number! "+JSONParser.getEventString(ev) );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "boost should have number! "+JSONParser.getEventString(ev) );
}
- field.setBoost( Float.valueOf( js.getNumberChars().toString() ) );
+ field.setBoost( Float.valueOf( parser.getNumberChars().toString() ) );
}
else if( "value".equals( v ) ) {
// nothing special...
stack.push( field ); // so it can be popped
}
else {
- throw new IOException( "invalid key: "+v + " ["+js.getPosition()+"]" );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "invalid key: "+v + " ["+ parser.getPosition()+"]" );
}
}
else if( obj instanceof SolrInputDocument ) {
@@ -323,22 +366,22 @@ class JsonLoader extends ContentStreamLo
stack.push( f );
}
else {
- throw new IOException( "hymmm ["+js.getPosition()+"]" );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "hymmm ["+ parser.getPosition()+"]" );
}
}
else {
- addValToField(stack, js.getString(), inArray, js);
+ addValToField(stack, parser.getString(), inArray, parser);
}
break;
case JSONParser.LONG:
case JSONParser.NUMBER:
case JSONParser.BIGNUMBER:
- addValToField(stack, js.getNumberChars().toString(), inArray, js);
+ addValToField(stack, parser.getNumberChars().toString(), inArray, parser);
break;
case JSONParser.BOOLEAN:
- addValToField(stack, js.getBoolean(),inArray, js);
+ addValToField(stack, parser.getBoolean(),inArray, parser);
break;
case JSONParser.OBJECT_START:
@@ -351,7 +394,7 @@ class JsonLoader extends ContentStreamLo
// should alreay be pushed...
}
else {
- throw new IOException( "should not start new object with: "+obj + " ["+js.getPosition()+"]" );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "should not start new object with: "+obj + " ["+ parser.getPosition()+"]" );
}
}
break;
@@ -365,7 +408,7 @@ class JsonLoader extends ContentStreamLo
// should already be pushed...
}
else {
- throw new IOException( "should not start new object with: "+obj + " ["+js.getPosition()+"]" );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "should not start new object with: "+obj + " ["+ parser.getPosition()+"]" );
}
break;
@@ -383,18 +426,18 @@ class JsonLoader extends ContentStreamLo
break;
}
- ev = js.nextEvent();
+ ev = parser.nextEvent();
if( ev == JSONParser.EOF ) {
- throw new IOException( "should finish doc first!" );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "should finish doc first!" );
}
}
}
- static void addValToField( Stack stack, Object val, boolean inArray, JSONParser js ) throws IOException
+ static void addValToField( Stack stack, Object val, boolean inArray, JSONParser parser ) throws IOException
{
Object obj = stack.peek();
if( !(obj instanceof SolrInputField) ) {
- throw new IOException( "hymmm ["+js.getPosition()+"]" );
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "hymmm ["+parser.getPosition()+"]" );
}
SolrInputField f = inArray
Modified: lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/JsonUpdateRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/JsonUpdateRequestHandler.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/JsonUpdateRequestHandler.java (original)
+++ lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/JsonUpdateRequestHandler.java Sun May 22 21:45:19 2011
@@ -37,7 +37,7 @@ public class JsonUpdateRequestHandler ex
@Override
protected ContentStreamLoader newLoader(SolrQueryRequest req, UpdateRequestProcessor processor) {
- return new JsonLoader(processor);
+ return new JsonLoader(req, processor);
}
//////////////////////// SolrInfoMBeans methods //////////////////////
Modified: lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/ReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/ReplicationHandler.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/ReplicationHandler.java (original)
+++ lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/ReplicationHandler.java Sun May 22 21:45:19 2011
@@ -843,9 +843,13 @@ public class ReplicationHandler extends
indexCommitPoint = reader.getIndexCommit();
}
} finally {
+ // We don't need to save commit points for replication, the SolrDeletionPolicy
+ // always saves the last commit point (and the last optimized commit point, if needed)
+ /***
if(indexCommitPoint != null){
core.getDeletionPolicy().saveCommitPoint(indexCommitPoint.getVersion());
}
+ ***/
}
}
if (core.getUpdateHandler() instanceof DirectUpdateHandler2) {
Modified: lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java?rev=1126234&r1=1126233&r2=1126234&view=diff
==============================================================================
--- lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java (original)
+++ lucene/dev/branches/solr2452/solr/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java Sun May 22 21:45:19 2011
@@ -190,7 +190,7 @@ public class CoreAdminHandler extends Re
}
UpdateRequestProcessorChain processorChain =
- core.getUpdateProcessingChain(params.get(UpdateParams.UPDATE_PROCESSOR));
+ core.getUpdateProcessingChain(params.get(UpdateParams.UPDATE_CHAIN));
wrappedReq = new LocalSolrQueryRequest(core, req.getParams());
UpdateRequestProcessor processor =
processorChain.createProcessor(wrappedReq, rsp);