You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2011/03/15 22:35:35 UTC

svn commit: r1081952 [15/17] - in /lucene/dev/branches/bulkpostings: ./ dev-tools/ 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/demo/ dev-tools/idea/luc...

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PersianNormalizationFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PersianNormalizationFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PersianNormalizationFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PersianNormalizationFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -22,7 +22,18 @@ package org.apache.solr.analysis;
 import org.apache.lucene.analysis.fa.PersianNormalizationFilter;
 import org.apache.lucene.analysis.TokenStream;
 
-/** Factory for {@link PersianNormalizationFilter} */
+/** 
+ * Factory for {@link PersianNormalizationFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_fanormal" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;charFilter class="solr.PersianCharFilterFactory"/&gt;
+ *     &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.PersianNormalizationFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
+ * @version $Id$
+ */
 public class PersianNormalizationFilterFactory extends BaseTokenFilterFactory {
   public PersianNormalizationFilter create(TokenStream input) {
     return new PersianNormalizationFilter(input);

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PhoneticFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PhoneticFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PhoneticFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PhoneticFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -33,6 +33,8 @@ import org.apache.lucene.analysis.phonet
 import org.apache.solr.common.SolrException;
 
 /**
+ * Factory for {@link PhoneticFilter}.
+ * 
  * Create tokens based on phonetic encoders
  * 
  * http://jakarta.apache.org/commons/codec/api-release/org/apache/commons/codec/language/package-summary.html
@@ -41,6 +43,14 @@ import org.apache.solr.common.SolrExcept
  *  "encoder" required, one of "DoubleMetaphone", "Metaphone", "Soundex", "RefinedSoundex"
  * 
  * "inject" (default=true) add tokens to the stream with the offset=0
+ *
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_phonetic" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.WhitespaceTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
  * 
  * @version $Id$
  * @see PhoneticFilter

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PorterStemFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PorterStemFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PorterStemFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PorterStemFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -21,6 +21,15 @@ import org.apache.lucene.analysis.TokenS
 import org.apache.lucene.analysis.en.PorterStemFilter;
 
 /**
+ * Factory for {@link PorterStemFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_porterstem" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.LowerCaseFilterFactory"/&gt;
+ *     &lt;filter class="solr.PorterStemFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
  * @version $Id$
  */
 public class PorterStemFilterFactory extends BaseTokenFilterFactory {

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PortugueseLightStemFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PortugueseLightStemFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PortugueseLightStemFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PortugueseLightStemFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -20,7 +20,18 @@ package org.apache.solr.analysis;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.pt.PortugueseLightStemFilter;
 
-/** Factory for {@link PortugueseLightStemFilter} */
+/** 
+ * Factory for {@link PortugueseLightStemFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_ptlgtstem" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.LowerCaseFilterFactory"/&gt;
+ *     &lt;filter class="solr.PortugueseLightStemFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
+ * @version $Id$
+ */
 public class PortugueseLightStemFilterFactory extends BaseTokenFilterFactory {
   public TokenStream create(TokenStream input) {
     return new PortugueseLightStemFilter(input);

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PortugueseMinimalStemFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PortugueseMinimalStemFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PortugueseMinimalStemFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PortugueseMinimalStemFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -20,7 +20,18 @@ package org.apache.solr.analysis;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.pt.PortugueseMinimalStemFilter;
 
-/** Factory for {@link PortugueseMinimalStemFilter} */
+/** 
+ * Factory for {@link PortugueseMinimalStemFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_ptminstem" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.LowerCaseFilterFactory"/&gt;
+ *     &lt;filter class="solr.PortugueseMinimalStemFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
+ * @version $Id$
+ */
 public class PortugueseMinimalStemFilterFactory extends BaseTokenFilterFactory {
   public TokenStream create(TokenStream input) {
     return new PortugueseMinimalStemFilter(input);

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PortugueseStemFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PortugueseStemFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PortugueseStemFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PortugueseStemFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -20,7 +20,18 @@ package org.apache.solr.analysis;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.pt.PortugueseStemFilter;
 
-/** Factory for {@link PortugueseStemFilter} */
+/** 
+ * Factory for {@link PortugueseStemFilter}. 
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_ptstem" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.LowerCaseFilterFactory"/&gt;
+ *     &lt;filter class="solr.PortugueseStemFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
+ * @version $Id$
+ */
 public class PortugueseStemFilterFactory extends BaseTokenFilterFactory {
   public TokenStream create(TokenStream input) {
     return new PortugueseStemFilter(input);

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PositionFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PositionFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PositionFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/PositionFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -23,8 +23,16 @@ import org.apache.lucene.analysis.positi
 import java.util.Map;
 
 /**
+ * Factory for {@link PositionFilter}.
  * Set the positionIncrement of all tokens to the "positionIncrement", except the first return token which retains its
  * original positionIncrement value. The default positionIncrement value is zero.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_position" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.WhitespaceTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.PositionFilterFactory" positionIncrement="0"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
  *
  * @version $Id$
  * @see org.apache.lucene.analysis.position.PositionFilter

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/RemoveDuplicatesTokenFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/RemoveDuplicatesTokenFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/RemoveDuplicatesTokenFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/RemoveDuplicatesTokenFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -21,6 +21,14 @@ import org.apache.lucene.analysis.TokenS
 import org.apache.lucene.analysis.miscellaneous.RemoveDuplicatesTokenFilter;
 
 /**
+ * Factory for {@link RemoveDuplicatesTokenFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_rmdup" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.WhitespaceTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.RemoveDuplicatesTokenFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
  * @version $Id$
  */
 public class RemoveDuplicatesTokenFilterFactory extends BaseTokenFilterFactory {

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ReverseStringFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ReverseStringFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ReverseStringFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ReverseStringFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -21,7 +21,14 @@ import org.apache.lucene.analysis.TokenS
 import org.apache.lucene.analysis.reverse.ReverseStringFilter;
 
 /**
- * A FilterFactory which reverses the input.
+ * Factory for {@link ReverseStringFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_rvsstr" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.WhitespaceTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.ReverseStringFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
  *
  * @version $Id$
  * @since solr 1.4

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ReversedWildcardFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ReversedWildcardFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ReversedWildcardFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ReversedWildcardFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -48,6 +48,18 @@ import org.apache.lucene.analysis.revers
  * </ul>
  * Note 1: This filter always reverses input tokens during indexing.
  * Note 2: Query tokens without wildcard characters will never be reversed.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_rvswc" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer type="index"&gt;
+ *     &lt;tokenizer class="solr.WhitespaceTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.ReversedWildcardFilterFactory" withOriginal="true"
+ *             maxPosAsterisk="2" maxPosQuestion="1" minTrailing="2" maxFractionAsterisk="0"/&gt;
+ *   &lt;/analyzer&gt;
+ *   &lt;analyzer type="query"&gt;
+ *     &lt;tokenizer class="solr.WhitespaceTokenizerFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
+ * @version $Id$
  */
 public class ReversedWildcardFilterFactory extends BaseTokenFilterFactory {
   

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/RussianLightStemFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/RussianLightStemFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/RussianLightStemFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/RussianLightStemFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -20,7 +20,18 @@ package org.apache.solr.analysis;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.ru.RussianLightStemFilter;
 
-/** Factory for {@link RussianLightStemFilter} */
+/** 
+ * Factory for {@link RussianLightStemFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_rulgtstem" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.LowerCaseFilterFactory"/&gt;
+ *     &lt;filter class="solr.RussianLightStemFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
+ * @version $Id$
+ */
 public class RussianLightStemFilterFactory extends BaseTokenFilterFactory {
   public TokenStream create(TokenStream input) {
     return new RussianLightStemFilter(input);

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ShingleFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ShingleFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ShingleFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ShingleFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -26,7 +26,18 @@ import org.apache.solr.common.SolrExcept
 
 import java.util.Map;
 
-/** Factory for {@link ShingleFilter} */
+/** 
+ * Factory for {@link ShingleFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_shingle" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.WhitespaceTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.ShingleFilterFactory" minShingleSize="2" maxShingleSize="2"
+ *             outputUnigrams="true" outputUnigramsIfNoShingles="false" tokenSeparator=" "/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
+ * @version $Id$
+ */
 public class ShingleFilterFactory extends BaseTokenFilterFactory {
   private int minShingleSize;
   private int maxShingleSize;

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SnowballPorterFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SnowballPorterFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SnowballPorterFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SnowballPorterFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -32,6 +32,14 @@ import org.tartarus.snowball.SnowballPro
  * Factory for {@link SnowballFilter}, with configurable language
  * <p>
  * Note: Use of the "Lovins" stemmer is not recommended, as it is implemented with reflection.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_snowballstem" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.LowerCaseFilterFactory"/&gt;
+ *     &lt;filter class="solr.SnowballPorterFilterFactory" protected="protectedkeyword.txt" language="English"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
  * 
  * @version $Id$
  */

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SpanishLightStemFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SpanishLightStemFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SpanishLightStemFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SpanishLightStemFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -20,7 +20,18 @@ package org.apache.solr.analysis;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.es.SpanishLightStemFilter;
 
-/** Factory for {@link SpanishLightStemFilter} */
+/** 
+ * Factory for {@link SpanishLightStemFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_eslgtstem" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.LowerCaseFilterFactory"/&gt;
+ *     &lt;filter class="solr.SpanishLightStemFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
+ * @version $Id$
+ */
 public class SpanishLightStemFilterFactory extends BaseTokenFilterFactory {
   public TokenStream create(TokenStream input) {
     return new SpanishLightStemFilter(input);

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/StandardFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/StandardFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/StandardFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/StandardFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -23,6 +23,14 @@ import org.apache.lucene.analysis.TokenS
 import org.apache.lucene.analysis.standard.StandardFilter;
 
 /**
+ * Factory for {@link StandardFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_stndrd" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.StandardFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
  * @version $Id$
  */
 public class StandardFilterFactory extends BaseTokenFilterFactory {

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/StandardTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/StandardTokenizerFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/StandardTokenizerFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/StandardTokenizerFactory.java Tue Mar 15 21:35:17 2011
@@ -24,6 +24,13 @@ import java.io.Reader;
 import java.util.Map;
 
 /**
+ * Factory for {@link StandardTokenizer}. 
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_stndrd" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.StandardTokenizerFactory" maxTokenLength="255"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre> 
  * @version $Id$
  */
 

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/StemmerOverrideFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/StemmerOverrideFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/StemmerOverrideFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/StemmerOverrideFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -28,7 +28,15 @@ import org.apache.solr.common.util.StrUt
 import org.apache.solr.util.plugin.ResourceLoaderAware;
 
 /**
- * Factory for {@link StemmerOverrideFilter}
+ * Factory for {@link StemmerOverrideFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_dicstem" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.WhitespaceTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.StemmerOverrideFilterFactory" dictionary="dictionary.txt" ignoreCase="false"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
+ * @version $Id
  */
 public class StemmerOverrideFilterFactory extends BaseTokenFilterFactory implements ResourceLoaderAware {
   private CharArrayMap<String> dictionary = null;

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SwedishLightStemFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SwedishLightStemFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SwedishLightStemFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SwedishLightStemFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -20,7 +20,18 @@ package org.apache.solr.analysis;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.sv.SwedishLightStemFilter;
 
-/** Factory for {@link SwedishLightStemFilter} */
+/** 
+ * Factory for {@link SwedishLightStemFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_svlgtstem" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.LowerCaseFilterFactory"/&gt;
+ *     &lt;filter class="solr.SwedishLightStemFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
+ * @version $Id$ 
+ */
 public class SwedishLightStemFilterFactory extends BaseTokenFilterFactory {
   public TokenStream create(TokenStream input) {
     return new SwedishLightStemFilter(input);

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SynonymFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SynonymFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SynonymFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/SynonymFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -35,6 +35,15 @@ import java.util.List;
 import java.util.Map;
 
 /**
+ * Factory for {@link SynonymFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_synonym" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.WhitespaceTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="false"
+ *             expand="true" tokenizerFactory="solr.WhitespaceTokenizerFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
  * @version $Id$
  */
 public class SynonymFilterFactory extends BaseTokenFilterFactory implements ResourceLoaderAware {

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ThaiWordFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ThaiWordFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ThaiWordFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/ThaiWordFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -22,7 +22,17 @@ import org.apache.lucene.analysis.th.Tha
 
 import org.apache.lucene.analysis.TokenStream;
 
-/** Factory for {@link ThaiWordFilter} */
+/** 
+ * Factory for {@link ThaiWordFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_thai" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.ThaiWordFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
+ * @version $Id$ 
+ */
 public class ThaiWordFilterFactory extends BaseTokenFilterFactory {
   public ThaiWordFilter create(TokenStream input) {
     assureMatchVersion();

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TokenOffsetPayloadTokenFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TokenOffsetPayloadTokenFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TokenOffsetPayloadTokenFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TokenOffsetPayloadTokenFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -22,7 +22,17 @@ package org.apache.solr.analysis;
 import org.apache.lucene.analysis.payloads.TokenOffsetPayloadTokenFilter;
 import org.apache.lucene.analysis.TokenStream;
 
-/** Factory for {@link TokenOffsetPayloadTokenFilter} */
+/** 
+ * Factory for {@link TokenOffsetPayloadTokenFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_tokenoffset" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.WhitespaceTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.TokenOffsetPayloadTokenFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
+ * @version $Id$ 
+ */
 public class TokenOffsetPayloadTokenFilterFactory extends BaseTokenFilterFactory {
   public TokenOffsetPayloadTokenFilter create(TokenStream input) {
     return new TokenOffsetPayloadTokenFilter(input);

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TrimFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TrimFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TrimFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TrimFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -24,6 +24,14 @@ import org.apache.lucene.analysis.miscel
 import org.apache.solr.common.SolrException;
 
 /**
+ * Factory for {@link TrimFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_trm" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.NGramTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.TrimFilterFactory" updateOffsets="false"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre>
  * @version $Id$
  * @see TrimFilter
  */

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TurkishLowerCaseFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TurkishLowerCaseFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TurkishLowerCaseFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TurkishLowerCaseFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -20,7 +20,17 @@ package org.apache.solr.analysis;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.analysis.tr.TurkishLowerCaseFilter;
 
-/** Factory for {@link TurkishLowerCaseFilter} */
+/** 
+ * Factory for {@link TurkishLowerCaseFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_trlwr" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.StandardTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.TurkishLowerCaseFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre> 
+ * @version $Id$
+ */
 public class TurkishLowerCaseFilterFactory extends BaseTokenFilterFactory {
   public TokenStream create(TokenStream input) {
     return new TurkishLowerCaseFilter(input);

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TypeAsPayloadTokenFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TypeAsPayloadTokenFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TypeAsPayloadTokenFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/TypeAsPayloadTokenFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -22,7 +22,17 @@ package org.apache.solr.analysis;
 import org.apache.lucene.analysis.payloads.TypeAsPayloadTokenFilter;
 import org.apache.lucene.analysis.TokenStream;
 
-/** Factory for {@link TypeAsPayloadTokenFilter} */
+/** 
+ * Factory for {@link TypeAsPayloadTokenFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_typeaspayload" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.WhitespaceTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.TypeAsPayloadTokenFilterFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre> 
+ * @version $Id$
+ */
 public class TypeAsPayloadTokenFilterFactory extends BaseTokenFilterFactory {
   public TypeAsPayloadTokenFilter create(TokenStream input) {
     return new TypeAsPayloadTokenFilter(input);

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/UAX29URLEmailTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/UAX29URLEmailTokenizerFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/UAX29URLEmailTokenizerFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/UAX29URLEmailTokenizerFactory.java Tue Mar 15 21:35:17 2011
@@ -27,6 +27,13 @@ import java.io.Reader;
 import java.util.Map;
 
 /**
+ * Factory for {@link UAX29URLEmailTokenizer}. 
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_urlemail" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.UAX29URLEmailTokenizerFactory" maxTokenLength="255"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre> 
  * @version $Id$
  * 
  */

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/WhitespaceTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/WhitespaceTokenizerFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/WhitespaceTokenizerFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/WhitespaceTokenizerFactory.java Tue Mar 15 21:35:17 2011
@@ -23,6 +23,13 @@ import java.io.Reader;
 import java.util.Map;
 
 /**
+ * Factory for {@link WhitespaceTokenizer}. 
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.WhitespaceTokenizerFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre> 
  * @version $Id$
  */
 public class WhitespaceTokenizerFactory extends BaseTokenizerFactory {

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/WikipediaTokenizerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/WikipediaTokenizerFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/WikipediaTokenizerFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/WikipediaTokenizerFactory.java Tue Mar 15 21:35:17 2011
@@ -22,7 +22,16 @@ import java.io.Reader;
 import org.apache.lucene.analysis.Tokenizer;
 import org.apache.lucene.analysis.wikipedia.WikipediaTokenizer;
 
-/** Factory for {@link WikipediaTokenizer}*/
+/** 
+ * Factory for {@link WikipediaTokenizer}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_wiki" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.WikipediaTokenizerFactory"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre> 
+ * @version $Id$
+ */
 public class WikipediaTokenizerFactory extends BaseTokenizerFactory {
   // TODO: add support for WikipediaTokenizer's advanced options.
   public Tokenizer create(Reader input) {

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/WordDelimiterFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/WordDelimiterFilterFactory.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/WordDelimiterFilterFactory.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/analysis/WordDelimiterFilterFactory.java Tue Mar 15 21:35:17 2011
@@ -37,6 +37,17 @@ import java.io.IOException;
 
 
 /**
+ * Factory for {@link WordDelimiterFilter}.
+ * <pre class="prettyprint" >
+ * &lt;fieldType name="text_wd" class="solr.TextField" positionIncrementGap="100"&gt;
+ *   &lt;analyzer&gt;
+ *     &lt;tokenizer class="solr.WhitespaceTokenizerFactory"/&gt;
+ *     &lt;filter class="solr.WordDelimiterFilterFactory" protected="protectedword.txt"
+ *             preserveOriginal="0" splitOnNumerics="1" splitOnCaseChange="1"
+ *             catenateWords="0" catenateNumbers="0" catenateAll="0"
+ *             generateWordParts="1" generateNumberParts="1" stemEnglishPossessive="1"/&gt;
+ *   &lt;/analyzer&gt;
+ * &lt;/fieldType&gt;</pre> 
  * @version $Id$
  */
 public class WordDelimiterFilterFactory extends BaseTokenFilterFactory implements ResourceLoaderAware {

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/Config.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/Config.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/Config.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/Config.java Tue Mar 15 21:35:17 2011
@@ -17,32 +17,40 @@
 
 package org.apache.solr.core;
 
+import org.apache.lucene.util.Version;
+import org.apache.solr.common.SolrException;
+import org.apache.solr.common.util.DOMUtil;
+import org.apache.solr.common.util.SystemIdResolver;
+import org.apache.solr.common.util.XMLErrorLogger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
+import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
-import org.apache.solr.common.SolrException;
-import org.apache.solr.common.util.DOMUtil;
+import org.apache.commons.io.IOUtils;
 
-import javax.xml.parsers.*;
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathFactory;
 import javax.xml.xpath.XPathConstants;
 import javax.xml.xpath.XPathExpressionException;
-import javax.xml.namespace.QName;
-import java.io.*;
+import javax.xml.xpath.XPathFactory;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.atomic.AtomicBoolean;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.apache.lucene.util.Version;
 
 /**
  * @version $Id$
  */
 public class Config {
   public static final Logger log = LoggerFactory.getLogger(Config.class);
+  private static final XMLErrorLogger xmllog = new XMLErrorLogger(log);
 
   static final XPathFactory xpathFactory = XPathFactory.newInstance();
 
@@ -63,7 +71,7 @@ public class Config {
   {
     this( loader, name, null, null );
   }
-  
+    
   /**
    * Builds a config:
    * <p>
@@ -77,13 +85,13 @@ public class Config {
    * </p>
    * @param loader the resource loader used to obtain an input stream if 'is' is null
    * @param name the resource name used if the input stream 'is' is null
-   * @param is the resource as a stream
+   * @param is the resource as a SAX InputSource
    * @param prefix an optional prefix that will be preprended to all non-absolute xpath expressions
    * @throws javax.xml.parsers.ParserConfigurationException
    * @throws java.io.IOException
    * @throws org.xml.sax.SAXException
    */
-  public Config(SolrResourceLoader loader, String name, InputStream is, String prefix) throws ParserConfigurationException, IOException, SAXException 
+  public Config(SolrResourceLoader loader, String name, InputSource is, String prefix) throws ParserConfigurationException, IOException, SAXException 
   {
     if( loader == null ) {
       loader = new SolrResourceLoader( null );
@@ -91,21 +99,35 @@ public class Config {
     this.loader = loader;
     this.name = name;
     this.prefix = (prefix != null && !prefix.endsWith("/"))? prefix + '/' : prefix;
-    InputStream lis = is;
     try {
-      if (lis == null) {
-        lis = loader.openConfig(name);
-      }
       javax.xml.parsers.DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+      
+      if (is == null) {
+        is = new InputSource(loader.openConfig(name));
+        is.setSystemId(SystemIdResolver.createSystemIdFromResourceName(name));
+      }
+
+      // only enable xinclude, if a SystemId is available
+      if (is.getSystemId() != null) {
+        try {
+          dbf.setXIncludeAware(true);
+          dbf.setNamespaceAware(true);
+        } catch(UnsupportedOperationException e) {
+          log.warn(name + " XML parser doesn't support XInclude option");
+        }
+      }
+      
+      final DocumentBuilder db = dbf.newDocumentBuilder();
+      db.setEntityResolver(new SystemIdResolver(loader));
+      db.setErrorHandler(xmllog);
       try {
-        dbf.setXIncludeAware(true);
-        dbf.setNamespaceAware(true);
-      } catch(UnsupportedOperationException e) {
-        log.warn(name + " XML parser doesn't support XInclude option");
+        doc = db.parse(is);
+      } finally {
+        // some XML parsers are broken and don't close the byte stream (but they should according to spec)
+        IOUtils.closeQuietly(is.getByteStream());
       }
-      doc = dbf.newDocumentBuilder().parse(lis);
 
-        DOMUtil.substituteProperties(doc, loader.getCoreProperties());
+      DOMUtil.substituteProperties(doc, loader.getCoreProperties());
     } catch (ParserConfigurationException e)  {
       SolrException.log(log, "Exception during parsing file: " + name, e);
       throw e;
@@ -115,9 +137,6 @@ public class Config {
     } catch( SolrException e ){
     	SolrException.log(log,"Error in "+name,e);
     	throw e;
-    } finally {
-      // if this opens the resource, it also closes it
-      if (lis != is)  lis.close();
     }
   }
 

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/CoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/CoreContainer.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/CoreContainer.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/CoreContainer.java Tue Mar 15 21:35:17 2011
@@ -42,6 +42,7 @@ import org.apache.solr.common.params.Cor
 import org.apache.solr.common.util.DOMUtil;
 import org.apache.solr.common.util.XML;
 import org.apache.solr.common.util.FileUtils;
+import org.apache.solr.common.util.SystemIdResolver;
 import org.apache.solr.handler.admin.CoreAdminHandler;
 import org.apache.solr.schema.IndexSchema;
 import org.apache.zookeeper.KeeperException;
@@ -49,6 +50,7 @@ import org.apache.commons.io.IOUtils;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.xml.sax.SAXException;
+import org.xml.sax.InputSource;
 
 
 /**
@@ -133,6 +135,11 @@ public class CoreContainer 
     if (zkRun == null && zookeeperHost == null)
         return;  // not in zk mode
 
+    // zookeeper in quorum mode currently causes a failure when trying to
+    // register log4j mbeans.  See SOLR-2369
+    // TODO: remove after updating to an slf4j based zookeeper
+    System.setProperty("zookeeper.jmx.log4j.disable", "true");
+
     zkServer = new SolrZkServer(zkRun, zookeeperHost, solrHome, hostPort);
     zkServer.parseConfig();
     zkServer.start();
@@ -232,7 +239,7 @@ public class CoreContainer 
         cores.load(solrHome, fconf);
       } else {
         log.info("no solr.xml file found - using default");
-        cores.load(solrHome, new ByteArrayInputStream(DEF_SOLR_XML.getBytes("UTF-8")));
+        cores.load(solrHome, new InputSource(new ByteArrayInputStream(DEF_SOLR_XML.getBytes("UTF-8"))));
         cores.configFile = fconf;
       }
       
@@ -280,7 +287,7 @@ public class CoreContainer 
    */
   public void load(String dir, File configFile ) throws ParserConfigurationException, IOException, SAXException {
     this.configFile = configFile;
-    this.load(dir, new FileInputStream(configFile));
+    this.load(dir, new InputSource(configFile.toURI().toASCIIString()));
   } 
 
   /**
@@ -292,125 +299,118 @@ public class CoreContainer 
    * @throws IOException
    * @throws SAXException
    */
-  public void load(String dir, InputStream cfgis)
+  public void load(String dir, InputSource cfgis)
       throws ParserConfigurationException, IOException, SAXException {
     this.loader = new SolrResourceLoader(dir);
     solrHome = loader.getInstanceDir();
-    try {
-      Config cfg = new Config(loader, null, cfgis, null);
-      String dcoreName = cfg.get("solr/cores/@defaultCoreName", null);
-      if(dcoreName != null) {
-        defaultCoreName = dcoreName;
-      }
-      persistent = cfg.getBool("solr/@persistent", false);
-      libDir = cfg.get("solr/@sharedLib", null);
-      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);
-
-      hostPort = System.getProperty("hostPort");
-      if (hostPort == null) {
-        hostPort = cfg.get("solr/cores/@hostPort", "8983");
-      }
-
-      hostContext = cfg.get("solr/cores/@hostContext", "solr");
-      host = cfg.get("solr/cores/@host", null);
+    Config cfg = new Config(loader, null, cfgis, null);
+    String dcoreName = cfg.get("solr/cores/@defaultCoreName", null);
+    if(dcoreName != null) {
+      defaultCoreName = dcoreName;
+    }
+    persistent = cfg.getBool("solr/@persistent", false);
+    libDir = cfg.get("solr/@sharedLib", null);
+    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);
+
+    hostPort = System.getProperty("hostPort");
+    if (hostPort == null) {
+      hostPort = cfg.get("solr/cores/@hostPort", "8983");
+    }
 
-      if(shareSchema){
-        indexSchemaCache = new ConcurrentHashMap<String ,IndexSchema>();
-      }
-      adminHandler  = cfg.get("solr/cores/@adminHandler", null );
-      managementPath  = cfg.get("solr/cores/@managementPath", null );
-      
-      zkClientTimeout = Integer.parseInt(System.getProperty("zkClientTimeout", Integer.toString(zkClientTimeout)));
-      initZooKeeper(zkHost, zkClientTimeout);
+    hostContext = cfg.get("solr/cores/@hostContext", "solr");
+    host = cfg.get("solr/cores/@host", null);
 
-      if (libDir != null) {
-        File f = FileUtils.resolvePath(new File(dir), libDir);
-        log.info( "loading shared library: "+f.getAbsolutePath() );
-        libLoader = SolrResourceLoader.createClassLoader(f, null);
-      }
+    if(shareSchema){
+      indexSchemaCache = new ConcurrentHashMap<String ,IndexSchema>();
+    }
+    adminHandler  = cfg.get("solr/cores/@adminHandler", null );
+    managementPath  = cfg.get("solr/cores/@managementPath", null );
+    
+    zkClientTimeout = Integer.parseInt(System.getProperty("zkClientTimeout", Integer.toString(zkClientTimeout)));
+    initZooKeeper(zkHost, zkClientTimeout);
 
-      if (adminPath != null) {
-        if (adminHandler == null) {
-          coreAdminHandler = new CoreAdminHandler(this);
-        } else {
-          coreAdminHandler = this.createMultiCoreHandler(adminHandler);
-        }
-      }
+    if (libDir != null) {
+      File f = FileUtils.resolvePath(new File(dir), libDir);
+      log.info( "loading shared library: "+f.getAbsolutePath() );
+      libLoader = SolrResourceLoader.createClassLoader(f, null);
+    }
 
-      try {
-        containerProperties = readProperties(cfg, ((NodeList) cfg.evaluate("solr", XPathConstants.NODESET)).item(0));
-      } catch (Throwable e) {
-        SolrConfig.severeErrors.add(e);
-        SolrException.logOnce(log,null,e);
+    if (adminPath != null) {
+      if (adminHandler == null) {
+        coreAdminHandler = new CoreAdminHandler(this);
+      } else {
+        coreAdminHandler = this.createMultiCoreHandler(adminHandler);
       }
+    }
 
-      NodeList nodes = (NodeList)cfg.evaluate("solr/cores/core", XPathConstants.NODESET);
-      boolean defaultCoreFound = false;
-      for (int i=0; i<nodes.getLength(); i++) {
-        Node node = nodes.item(i);
-        try {
-          String name = DOMUtil.getAttr(node, "name", null);
-          if (null == name) {
-            throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,
-                                    "Each core in solr.xml must have a 'name'");
-          }
-          if (name.equals(defaultCoreName)){
-            // for the default core we use a blank name,
-            // later on attempts to access it by it's full name will 
-            // be mapped to this.
-            name="";
-          }
-          CoreDescriptor p = new CoreDescriptor(this, name, DOMUtil.getAttr(node, "instanceDir", null));
-
-          // deal with optional settings
-          String opt = DOMUtil.getAttr(node, "config", null);
+    try {
+      containerProperties = readProperties(cfg, ((NodeList) cfg.evaluate("solr", XPathConstants.NODESET)).item(0));
+    } catch (Throwable e) {
+      SolrConfig.severeErrors.add(e);
+      SolrException.logOnce(log,null,e);
+    }
 
-          if (opt != null) {
-            p.setConfigName(opt);
-          }
-          opt = DOMUtil.getAttr(node, "schema", null);
-          if (opt != null) {
-            p.setSchemaName(opt);
-          }
-          if (zkController != null) {
-            opt = DOMUtil.getAttr(node, "shard", null);
-            if (opt != null && opt.length() > 0) {
-              p.getCloudDescriptor().setShardId(opt);
-            }
-            opt = DOMUtil.getAttr(node, "collection", null);
-            if (opt != null) {
-              p.getCloudDescriptor().setCollectionName(opt);
-            }
-          }
-          opt = DOMUtil.getAttr(node, "properties", null);
-          if (opt != null) {
-            p.setPropertiesName(opt);
+    NodeList nodes = (NodeList)cfg.evaluate("solr/cores/core", XPathConstants.NODESET);
+    boolean defaultCoreFound = false;
+    for (int i=0; i<nodes.getLength(); i++) {
+      Node node = nodes.item(i);
+      try {
+        String name = DOMUtil.getAttr(node, "name", null);
+        if (null == name) {
+          throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,
+                                  "Each core in solr.xml must have a 'name'");
+        }
+        if (name.equals(defaultCoreName)){
+          // for the default core we use a blank name,
+          // later on attempts to access it by it's full name will 
+          // be mapped to this.
+          name="";
+        }
+        CoreDescriptor p = new CoreDescriptor(this, name, DOMUtil.getAttr(node, "instanceDir", null));
+
+        // deal with optional settings
+        String opt = DOMUtil.getAttr(node, "config", null);
+
+        if (opt != null) {
+          p.setConfigName(opt);
+        }
+        opt = DOMUtil.getAttr(node, "schema", null);
+        if (opt != null) {
+          p.setSchemaName(opt);
+        }
+        if (zkController != null) {
+          opt = DOMUtil.getAttr(node, "shard", null);
+          if (opt != null && opt.length() > 0) {
+            p.getCloudDescriptor().setShardId(opt);
           }
-          opt = DOMUtil.getAttr(node, CoreAdminParams.DATA_DIR, null);
+          opt = DOMUtil.getAttr(node, "collection", null);
           if (opt != null) {
-            p.setDataDir(opt);
+            p.getCloudDescriptor().setCollectionName(opt);
           }
-
-          p.setCoreProperties(readProperties(cfg, node));
-
-          SolrCore core = create(p);
-          register(name, core, false);
         }
-        catch (Throwable ex) {
-          SolrConfig.severeErrors.add( ex );
-          SolrException.logOnce(log,null,ex);
+        opt = DOMUtil.getAttr(node, "properties", null);
+        if (opt != null) {
+          p.setPropertiesName(opt);
+        }
+        opt = DOMUtil.getAttr(node, CoreAdminParams.DATA_DIR, null);
+        if (opt != null) {
+          p.setDataDir(opt);
         }
+
+        p.setCoreProperties(readProperties(cfg, node));
+
+        SolrCore core = create(p);
+        register(name, core, false);
       }
-    } finally {
-      if (cfgis != null) {
-        try { cfgis.close(); } catch (Exception xany) {}
+      catch (Throwable ex) {
+        SolrConfig.severeErrors.add( ex );
+        SolrException.logOnce(log,null,ex);
       }
     }
     
-    
     if(zkController != null) {
       try {
         synchronized (zkController.getZkStateReader().getUpdateLock()) {
@@ -1020,7 +1020,8 @@ public class CoreContainer 
       ParserConfigurationException, SAXException, KeeperException,
       InterruptedException {
     byte[] config = zkController.getConfigFileData(zkConfigName, solrConfigFileName);
-    InputStream is = new ByteArrayInputStream(config);
+    InputSource is = new InputSource(new ByteArrayInputStream(config));
+    is.setSystemId(SystemIdResolver.createSystemIdFromResourceName(solrConfigFileName));
     SolrConfig cfg = solrConfigFileName == null ? new SolrConfig(
         resourceLoader, SolrConfig.DEFAULT_CONF_FILE, is) : new SolrConfig(
         resourceLoader, solrConfigFileName, is);
@@ -1032,7 +1033,8 @@ public class CoreContainer 
       SolrConfig config, SolrResourceLoader resourceLoader)
       throws KeeperException, InterruptedException {
     byte[] configBytes = zkController.getConfigFileData(zkConfigName, schemaName);
-    InputStream is = new ByteArrayInputStream(configBytes);
+    InputSource is = new InputSource(new ByteArrayInputStream(configBytes));
+    is.setSystemId(SystemIdResolver.createSystemIdFromResourceName(schemaName));
     IndexSchema schema = new IndexSchema(config, schemaName, is);
     return schema;
   }

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/SolrConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/SolrConfig.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/SolrConfig.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/SolrConfig.java Tue Mar 15 21:35:17 2011
@@ -45,6 +45,7 @@ import org.slf4j.LoggerFactory;
 
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
 import javax.xml.parsers.ParserConfigurationException;
@@ -102,7 +103,7 @@ public class SolrConfig extends Config {
    *@param name the configuration name
    *@param is the configuration stream
    */
-  public SolrConfig(String name, InputStream is)
+  public SolrConfig(String name, InputSource is)
   throws ParserConfigurationException, IOException, SAXException {
     this( (SolrResourceLoader) null, name, is );
   }
@@ -112,7 +113,7 @@ public class SolrConfig extends Config {
    *@param name the configuration name used by the loader if the stream is null
    *@param is the configuration stream 
    */
-  public SolrConfig(String instanceDir, String name, InputStream is)
+  public SolrConfig(String instanceDir, String name, InputSource is)
   throws ParserConfigurationException, IOException, SAXException {
     this(new SolrResourceLoader(instanceDir), name, is);
   }
@@ -124,7 +125,7 @@ public class SolrConfig extends Config {
    *@param name the configuration name
    *@param is the configuration stream
    */
-  SolrConfig(SolrResourceLoader loader, String name, InputStream is)
+  SolrConfig(SolrResourceLoader loader, String name, InputSource is)
   throws ParserConfigurationException, IOException, SAXException {
     super(loader, name, is, "/config/");
     initLibs();

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/SolrResourceLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/SolrResourceLoader.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/SolrResourceLoader.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/SolrResourceLoader.java Tue Mar 15 21:35:17 2011
@@ -131,12 +131,7 @@ public class SolrResourceLoader implemen
    */
   void addToClassLoader(final String baseDir, final FileFilter filter) {
     File base = FileUtils.resolvePath(new File(getInstanceDir()), baseDir);
-    if(base != null && base.canRead() && base.isDirectory()){
-      this.classLoader = replaceClassLoader(classLoader, base, filter);
-    }
-    else{
-      log.error("Can't find (or read) file to add to classloader: " + base);
-    }
+    this.classLoader = replaceClassLoader(classLoader, base, filter);
   }
   
   /**

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/DocumentAnalysisRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/DocumentAnalysisRequestHandler.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/DocumentAnalysisRequestHandler.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/DocumentAnalysisRequestHandler.java Tue Mar 15 21:35:17 2011
@@ -30,6 +30,7 @@ import org.apache.solr.common.util.Conte
 import org.apache.solr.common.util.ContentStreamBase;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
+import org.apache.solr.common.util.XMLErrorLogger;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.schema.FieldType;
 import org.apache.solr.schema.IndexSchema;
@@ -78,6 +79,7 @@ import java.util.*;
 public class DocumentAnalysisRequestHandler extends AnalysisRequestHandlerBase {
 
   public static final Logger log = LoggerFactory.getLogger(DocumentAnalysisRequestHandler.class);
+  private static final XMLErrorLogger xmllog = new XMLErrorLogger(log);
 
   private static final float DEFAULT_BOOST = 1.0f;
 
@@ -101,6 +103,7 @@ public class DocumentAnalysisRequestHand
       // isimplementation specific.
       log.debug("Unable to set the 'reuse-instance' property for the input factory: " + inputFactory);
     }
+    inputFactory.setXMLReporter(xmllog);
   }
 
   /**

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/XmlUpdateRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/XmlUpdateRequestHandler.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/XmlUpdateRequestHandler.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/XmlUpdateRequestHandler.java Tue Mar 15 21:35:17 2011
@@ -20,6 +20,7 @@ package org.apache.solr.handler;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.XML;
+import org.apache.solr.common.util.XMLErrorLogger;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.request.LocalSolrQueryRequest;
 import org.apache.solr.request.SolrQueryRequest;
@@ -40,6 +41,7 @@ import java.util.HashMap;
  */
 public class XmlUpdateRequestHandler extends ContentStreamHandlerBase {
   public static Logger log = LoggerFactory.getLogger(XmlUpdateRequestHandler.class);
+  private static final XMLErrorLogger xmllog = new XMLErrorLogger(log);
 
   public static final String UPDATE_PROCESSOR = "update.processor";
 
@@ -78,6 +80,7 @@ public class XmlUpdateRequestHandler ext
       // isimplementation specific.
       log.debug("Unable to set the 'reuse-instance' property for the input chain: " + inputFactory);
     }
+    inputFactory.setXMLReporter(xmllog);
   }
 
   @Override

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java Tue Mar 15 21:35:17 2011
@@ -586,7 +586,7 @@ public class LukeRequestHandler extends 
     public TermHistogram histogram;
     
     TopTermQueue(int size) {
-      initialize(size);
+      super(size);
       histogram = new TermHistogram();
     }
     

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/FacetComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/FacetComponent.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/FacetComponent.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/FacetComponent.java Tue Mar 15 21:35:17 2011
@@ -222,12 +222,11 @@ public class FacetComponent extends Sear
           sreq.params.remove(paramStart + FacetParams.FACET_MINCOUNT);
           sreq.params.remove(paramStart + FacetParams.FACET_OFFSET);
 
+          dff.initialLimit = dff.offset + dff.limit;
+
           if(dff.sort.equals(FacetParams.FACET_SORT_COUNT) && dff.limit > 0) {
             // set the initial limit higher to increase accuracy
-            dff.initialLimit = dff.offset + dff.limit;
             dff.initialLimit = (int)(dff.initialLimit * 1.5) + 10;
-          } else {
-            dff.initialLimit = dff.limit;
           }
 
           // Currently this is for testing only and allows overriding of the

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/QueryElevationComponent.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/QueryElevationComponent.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/QueryElevationComponent.java Tue Mar 15 21:35:17 2011
@@ -67,6 +67,7 @@ import org.apache.solr.util.plugin.SolrC
 import org.apache.solr.request.SolrQueryRequest;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
 
 /**
  * A component to elevate some documents to the top of the result set.
@@ -230,7 +231,7 @@ public class QueryElevationComponent ext
         log.info( "Loading QueryElevation from data dir: "+f );
 
         InputStream is = VersionedFile.getLatestFile( core.getDataDir(), f );
-        Config cfg = new Config( core.getResourceLoader(), f, is, null );
+        Config cfg = new Config( core.getResourceLoader(), f, new InputSource(is), null );
         map = loadElevationMap( cfg );
         elevationCache.put( reader, map );
       }

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/ShardDoc.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/ShardDoc.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/ShardDoc.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/ShardDoc.java Tue Mar 15 21:35:17 2011
@@ -82,6 +82,7 @@ class ShardFieldSortedHitQueue extends P
   protected List<String> fieldNames = new ArrayList<String>();
 
   public ShardFieldSortedHitQueue(SortField[] fields, int size) {
+    super(size);
     final int n = fields.length;
     comparators = new Comparator[n];
     this.fields = new SortField[n];
@@ -95,10 +96,10 @@ class ShardFieldSortedHitQueue extends P
 
       String fieldname = fields[i].getField();
       comparators[i] = getCachedComparator(fieldname, fields[i]
-          .getType(), fields[i].getLocale(), fields[i].getComparatorSource());
+          .getType(), fields[i].getComparatorSource());
 
      if (fields[i].getType() == SortField.STRING) {
-        this.fields[i] = new SortField(fieldname, fields[i].getLocale(),
+        this.fields[i] = new SortField(fieldname, SortField.STRING, 
             fields[i].getReverse());
       } else {
         this.fields[i] = new SortField(fieldname, fields[i].getType(),
@@ -107,8 +108,6 @@ class ShardFieldSortedHitQueue extends P
 
       //System.out.println("%%%%%%%%%%%%%%%%%% got "+fields[i].getType() +"   for "+ fieldname +"  fields[i].getReverse(): "+fields[i].getReverse());
     }
-
-    initialize(size);
   }
 
   @Override
@@ -145,17 +144,14 @@ class ShardFieldSortedHitQueue extends P
     return c < 0;
   }
 
-  Comparator getCachedComparator(String fieldname, int type, Locale locale, FieldComparatorSource factory) {
+  Comparator getCachedComparator(String fieldname, int type, FieldComparatorSource factory) {
     Comparator comparator = null;
     switch (type) {
     case SortField.SCORE:
       comparator = comparatorScore(fieldname);
       break;
     case SortField.STRING:
-      if (locale != null)
-        comparator = comparatorStringLocale(fieldname, locale);
-      else
-        comparator = comparatorNatural(fieldname);
+      comparator = comparatorNatural(fieldname);
       break;
     case SortField.CUSTOM:
       if (factory instanceof MissingStringLastComparatorSource){

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/SpellCheckComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/SpellCheckComponent.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/SpellCheckComponent.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/handler/component/SpellCheckComponent.java Tue Mar 15 21:35:17 2011
@@ -47,7 +47,8 @@ import org.apache.solr.common.params.Com
 import org.apache.solr.common.params.ShardParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.params.SpellingParams;
-import org.apache.solr.common.util.NamedList;import org.apache.solr.common.util.SimpleOrderedMap;
+import org.apache.solr.common.util.NamedList;
+import org.apache.solr.common.util.SimpleOrderedMap;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.core.SolrEventListener;
 import org.apache.solr.core.SolrResourceLoader;

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java Tue Mar 15 21:35:17 2011
@@ -114,10 +114,7 @@ class PerSegmentSingleValuedFaceting {
 
 
     // now merge the per-segment results
-    PriorityQueue<SegFacet> queue = new PriorityQueue<SegFacet>() {
-      {
-        initialize(leaves.length);
-      }
+    PriorityQueue<SegFacet> queue = new PriorityQueue<SegFacet>(leaves.length) {
       @Override
       protected boolean lessThan(SegFacet a, SegFacet b) {
         return a.tempBR.compareTo(b.tempBR) < 0;

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/request/SimpleFacets.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/request/SimpleFacets.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/request/SimpleFacets.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/request/SimpleFacets.java Tue Mar 15 21:35:17 2011
@@ -761,8 +761,9 @@ public class SimpleFacets {
    * SolrParams
    *
    * @see FacetParams#FACET_DATE
+   * @deprecated Use getFacetRangeCounts which is more generalized
    */
-
+  @Deprecated
   public NamedList<Object> getFacetDateCounts()
     throws IOException, ParseException {
 
@@ -784,6 +785,10 @@ public class SimpleFacets {
     return resOuter;
   }
 
+  /**
+   * @deprecated Use getFacetRangeCounts which is more generalized
+   */
+  @Deprecated
   public void getFacetDateCounts(String dateFacet, NamedList<Object> resOuter)
       throws IOException, ParseException {
 
@@ -834,8 +839,16 @@ public class SimpleFacets {
 
     final int minCount = params.getFieldInt(f,FacetParams.FACET_MINCOUNT, 0);
 
-    final EnumSet<FacetRangeInclude> include = FacetRangeInclude.parseParam
-        (params.getFieldParams(f,FacetParams.FACET_DATE_INCLUDE));
+    String[] iStrs = params.getFieldParams(f,FacetParams.FACET_DATE_INCLUDE);
+    // Legacy support for default of [lower,upper,edge] for date faceting
+    // this is not handled by FacetRangeInclude.parseParam because
+    // range faceting has differnet defaults
+    final EnumSet<FacetRangeInclude> include = 
+      (null == iStrs || 0 == iStrs.length ) ?
+      EnumSet.of(FacetRangeInclude.LOWER, 
+                 FacetRangeInclude.UPPER, 
+                 FacetRangeInclude.EDGE)
+      : FacetRangeInclude.parseParam(iStrs);
 
     try {
       Date low = start;
@@ -1140,6 +1153,10 @@ public class SimpleFacets {
     return searcher.numDocs(rangeQ ,base);
   }
 
+  /**
+   * @deprecated Use rangeCount(SchemaField,String,String,boolean,boolean) which is more generalized
+   */
+  @Deprecated
   protected int rangeCount(SchemaField sf, Date low, Date high,
                            boolean iLow, boolean iHigh) throws IOException {
     Query rangeQ = ((DateField)(sf.getType())).getRangeQuery(null, sf,low,high,iLow,iHigh);

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/PHPSerializedResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/PHPSerializedResponseWriter.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/PHPSerializedResponseWriter.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/PHPSerializedResponseWriter.java Tue Mar 15 21:35:17 2011
@@ -37,37 +37,15 @@ import org.apache.solr.common.SolrDocume
 /**
  * A description of the PHP serialization format can be found here:
  * http://www.hurring.com/scott/code/perl/serialize/
- *
- * <p>
- * In order to support PHP Serialized strings with a proper byte count, This ResponseWriter
- * must know if the Writers passed to it will result in an output of CESU-8 (UTF-8 w/o support
- * for large code points outside of the BMP)
- * <p>
- * Currently Solr assumes that all Jetty servlet containers (detected using the "jetty.home"
- * system property) use CESU-8 instead of UTF-8 (verified to the current release of 6.1.20).
- * <p>
- * In installations where Solr auto-detects incorrectly, the Solr Administrator should set the
- * "solr.phps.cesu8" system property to either "true" or "false" accordingly.
  */
 public class PHPSerializedResponseWriter implements QueryResponseWriter {
   static String CONTENT_TYPE_PHP_UTF8="text/x-php-serialized;charset=UTF-8";
 
-  // Is this servlet container's UTF-8 encoding actually CESU-8 (i.e. lacks support for
-  // large characters outside the BMP).
-  boolean CESU8 = false;
   public void init(NamedList n) {
-    String cesu8Setting = System.getProperty("solr.phps.cesu8");
-    if (cesu8Setting != null) {
-      CESU8="true".equals(cesu8Setting);
-    } else {
-      // guess at the setting.
-      // Jetty up until 6.1.20 at least (and probably versions after) uses CESU8
-      CESU8 = System.getProperty("jetty.home") != null;
-    }
   }
   
  public void write(Writer writer, SolrQueryRequest req, SolrQueryResponse rsp) throws IOException {
-    PHPSerializedWriter w = new PHPSerializedWriter(writer, req, rsp, CESU8);
+    PHPSerializedWriter w = new PHPSerializedWriter(writer, req, rsp);
     try {
       w.writeResponse();
     } finally {
@@ -81,13 +59,11 @@ public class PHPSerializedResponseWriter
 }
 
 class PHPSerializedWriter extends JSONWriter {
-  final private boolean CESU8;
   final BytesRef utf8;
 
-  public PHPSerializedWriter(Writer writer, SolrQueryRequest req, SolrQueryResponse rsp, boolean CESU8) {
+  public PHPSerializedWriter(Writer writer, SolrQueryRequest req, SolrQueryResponse rsp) {
     super(writer, req, rsp);
-    this.CESU8 = CESU8;
-    this.utf8 = CESU8 ? null : new BytesRef();
+    this.utf8 = new BytesRef();
     // never indent serialized PHP data
     doIndent = false;
   }
@@ -397,23 +373,8 @@ class PHPSerializedWriter extends JSONWr
   public void writeStr(String name, String val, boolean needsEscaping) throws IOException {
     // serialized PHP strings don't need to be escaped at all, however the 
     // string size reported needs be the number of bytes rather than chars.
-    int nBytes;
-    if (CESU8) {
-      nBytes = 0;
-      for (int i=0; i<val.length(); i++) {
-        char ch = val.charAt(i);
-        if (ch<='\u007f') {
-          nBytes += 1;
-        } else if (ch<='\u07ff') {
-          nBytes += 2;
-        } else {
-          nBytes += 3;
-        }
-      }
-    } else {
-      UnicodeUtil.UTF16toUTF8(val, 0, val.length(), utf8);
-      nBytes = utf8.length;
-    }
+    UnicodeUtil.UTF16toUTF8(val, 0, val.length(), utf8);
+    int nBytes = utf8.length;
 
     writer.write("s:");
     writer.write(Integer.toString(nBytes));

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/QueryResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/QueryResponseWriter.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/QueryResponseWriter.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/QueryResponseWriter.java Tue Mar 15 21:35:17 2011
@@ -43,7 +43,7 @@ import org.apache.solr.util.plugin.Named
  * @version $Id$
  */
 public interface QueryResponseWriter extends NamedListInitializedPlugin {
-  public static String CONTENT_TYPE_XML_UTF8="text/xml; charset=UTF-8";
+  public static String CONTENT_TYPE_XML_UTF8="application/xml; charset=UTF-8";
   public static String CONTENT_TYPE_TEXT_UTF8="text/plain; charset=UTF-8";
   public static String CONTENT_TYPE_TEXT_ASCII="text/plain; charset=US-ASCII";
 

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/TextResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/TextResponseWriter.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/TextResponseWriter.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/TextResponseWriter.java Tue Mar 15 21:35:17 2011
@@ -103,7 +103,7 @@ public abstract class TextResponseWriter
 
   public abstract void writeNamedList(String name, NamedList val) throws IOException;
 
-  public void writeVal(String name, Object val) throws IOException {
+  public final void writeVal(String name, Object val) throws IOException {
 
     // if there get to be enough types, perhaps hashing on the type
     // to get a handler might be faster (but types must be exact to do that...)

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/XMLWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/XMLWriter.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/XMLWriter.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/XMLWriter.java Tue Mar 15 21:35:17 2011
@@ -19,6 +19,7 @@ package org.apache.solr.response;
 
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
+import org.apache.solr.common.SolrException;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.XML;
@@ -44,8 +45,8 @@ public final class XMLWriter extends Tex
 
   private static final char[] XML_START1="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n".toCharArray();
 
-  private static final char[] XML_STYLESHEET="<?xml-stylesheet type=\"text/xsl\" href=\"/admin/".toCharArray();
-  private static final char[] XML_STYLESHEET_END=".xsl\"?>\n".toCharArray();
+  private static final char[] XML_STYLESHEET="<?xml-stylesheet type=\"text/xsl\" href=\"".toCharArray();
+  private static final char[] XML_STYLESHEET_END="\"?>\n".toCharArray();
 
   /***
   private static final char[] XML_START2_SCHEMA=(
@@ -76,9 +77,13 @@ public final class XMLWriter extends Tex
   public XMLWriter(Writer writer, SolrQueryRequest req, SolrQueryResponse rsp) {
     super(writer, req, rsp);
 
-    String version = req.getParams().get("version");
+    String version = req.getParams().get(CommonParams.VERSION);
     float ver = version==null? CURRENT_VERSION : Float.parseFloat(version);
     this.version = (int)(ver*1000);
+    if( this.version < 2200 ) {
+      throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,
+          "XMLWriter does not support version: "+version );
+    }
   }
 
 
@@ -89,7 +94,7 @@ public final class XMLWriter extends Tex
     String stylesheet = req.getParams().get("stylesheet");
     if (stylesheet != null && stylesheet.length() > 0) {
       writer.write(XML_STYLESHEET);
-      writer.write(stylesheet);
+      XML.escapeAttributeValue(stylesheet, writer);
       writer.write(XML_STYLESHEET_END);
     }
 
@@ -110,28 +115,6 @@ public final class XMLWriter extends Tex
     int sz = lst.size();
     int start=0;
 
-    // special case the response header if the version is 2.1 or less
-    if (version<=2100 && sz>0) {
-      Object header = lst.getVal(0);
-      if (header instanceof NamedList && "responseHeader".equals(lst.getName(0))) {
-        writer.write("<responseHeader>");
-        incLevel();
-        NamedList nl = (NamedList)header;
-        for (int i=0; i<nl.size(); i++) {
-          String name = nl.getName(i);
-          Object val = nl.getVal(i);
-          if ("status".equals(name) || "QTime".equals(name)) {
-            writePrim(name,null,val.toString(),false);
-          } else {
-            writeVal(name,val);
-          }
-        }
-        decLevel();
-        writer.write("</responseHeader>");
-        start=1;
-      }
-    }
-
     for (int i=start; i<sz; i++) {
       writeVal(lst.getName(i),lst.getVal(i));
     }
@@ -248,7 +231,7 @@ public final class XMLWriter extends Tex
       }
       if (fidx1+1 == fidx2) {
         // single field value
-        if (version>=2100 && sf.multiValued()) {
+        if (sf.multiValued()) {
           startTag("arr",fname,false);
           doIndent=false;
           sf.write(this, null, f1);
@@ -301,7 +284,7 @@ public final class XMLWriter extends Tex
       } else {
         // single valued... figure out if we should put <arr> tags around it anyway
         SchemaField sf = schema.getFieldOrNull(fname);
-        if (version>=2100 && sf!=null && sf.multiValued()) {
+        if (sf!=null && sf.multiValued()) {
           startTag("arr",fname,false);
           doIndent=false;
           writeVal(fname, val);
@@ -436,61 +419,6 @@ public final class XMLWriter extends Tex
   }
 
 
-  @Override
-  public void writeVal(String name, Object val) throws IOException {
-
-    // if there get to be enough types, perhaps hashing on the type
-    // to get a handler might be faster (but types must be exact to do that...)
-
-    // go in order of most common to least common
-    if (val==null) {
-      writeNull(name);
-    } else if (val instanceof String) {
-      writeStr(name, (String)val, true);
-    } else if (val instanceof Integer) {
-      // it would be slower to pass the int ((Integer)val).intValue()
-      writeInt(name, val.toString());
-    } else if (val instanceof Boolean) {
-      // could be optimized... only two vals
-      writeBool(name, val.toString());
-    } else if (val instanceof Long) {
-      writeLong(name, val.toString());
-    } else if (val instanceof Date) {
-      writeDate(name,(Date)val);
-    } else if (val instanceof Float) {
-      // we pass the float instead of using toString() because
-      // it may need special formatting. same for double.
-      writeFloat(name, ((Float)val).floatValue());
-    } else if (val instanceof Double) {
-      writeDouble(name, ((Double)val).doubleValue());
-    } else if (val instanceof Document) {
-      writeDoc(name, (Document)val, returnFields, 0.0f, false);
-    } else if (val instanceof DocList) {
-      // requires access to IndexReader
-      writeDocList(name, (DocList)val, returnFields, null);
-    }else if (val instanceof SolrDocumentList) {
-        // requires access to IndexReader
-      writeSolrDocumentList(name, (SolrDocumentList)val, returnFields, null);
-    }else if (val instanceof DocSet) {
-      // how do we know what fields to read?
-      // todo: have a DocList/DocSet wrapper that
-      // restricts the fields to write...?
-    } else if (val instanceof Map) {
-      writeMap(name, (Map)val, false, true);
-    } else if (val instanceof NamedList) {
-      writeNamedList(name, (NamedList)val);
-    } else if (val instanceof Iterable) {
-      writeArray(name,((Iterable)val).iterator());
-    } else if (val instanceof Object[]) {
-      writeArray(name,(Object[])val);
-    } else if (val instanceof Iterator) {
-      writeArray(name,(Iterator)val);
-    } else {
-      // default...
-      writeStr(name, val.getClass().getName() + ':' + val.toString(), true);
-    }
-  }
-
   //
   // Generic compound types
   //

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/XSLTResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/XSLTResponseWriter.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/XSLTResponseWriter.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/response/XSLTResponseWriter.java Tue Mar 15 21:35:17 2011
@@ -44,7 +44,7 @@ import org.apache.solr.util.xslt.Transfo
  */
 public class XSLTResponseWriter implements QueryResponseWriter {
 
-  public static final String DEFAULT_CONTENT_TYPE = "text/xml";
+  public static final String DEFAULT_CONTENT_TYPE = "application/xml";
   public static final String TRANSFORM_PARAM = "tr";
   public static final String CONTEXT_TRANSFORMER_KEY = "xsltwriter.transformer";
   
@@ -70,14 +70,23 @@ public class XSLTResponseWriter implemen
       throw new RuntimeException("getTransformer fails in getContentType",e);
     }
     
-    final String mediaTypeFromXslt = t.getOutputProperty("media-type");
-    if(mediaTypeFromXslt == null || mediaTypeFromXslt.length()==0) {
+    String mediaType = t.getOutputProperty("media-type");
+    if (mediaType == null || mediaType.length()==0) {
       // This did not happen in my tests, mediaTypeFromXslt is set to "text/xml"
       // if the XSLT transform does not contain an xsl:output element. Not sure
       // if this is standard behavior or if it's just my JVM/libraries
-      return DEFAULT_CONTENT_TYPE;
+      mediaType = DEFAULT_CONTENT_TYPE;
     }
-    return mediaTypeFromXslt;
+    
+    if (!mediaType.contains("charset")) {
+      String encoding = t.getOutputProperty("encoding");
+      if (encoding == null || encoding.length()==0) {
+        encoding = "UTF-8";
+      }
+      mediaType = mediaType + "; charset=" + encoding;
+    }
+    
+    return mediaType;
   }
 
   public void write(Writer writer, SolrQueryRequest request, SolrQueryResponse response) throws IOException {

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/schema/AbstractSubTypeFieldType.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/schema/AbstractSubTypeFieldType.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/schema/AbstractSubTypeFieldType.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/schema/AbstractSubTypeFieldType.java Tue Mar 15 21:35:17 2011
@@ -85,6 +85,7 @@ public abstract class AbstractSubTypeFie
     //Just set these, delegate everything else to the field type
     props.put("indexed", "true");
     props.put("stored", "false");
+    props.put("multiValued", "false");
     int p = SchemaField.calcProps(name, type, props);
     SchemaField proto = SchemaField.create(name,
             type, p, null);

Modified: lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/schema/BoolField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/schema/BoolField.java?rev=1081952&r1=1081951&r2=1081952&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/schema/BoolField.java (original)
+++ lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/schema/BoolField.java Tue Mar 15 21:35:17 2011
@@ -49,6 +49,7 @@ public class BoolField extends FieldType
 
   @Override
   public ValueSource getValueSource(SchemaField field, QParser qparser) {
+    field.checkFieldCacheSource(qparser);
     return new OrdFieldSource(field.name);
   }