You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2011/08/27 15:27:12 UTC
svn commit: r1162347 [14/15] - in /lucene/dev/trunk: lucene/ lucene/contrib/
lucene/contrib/demo/src/java/org/apache/lucene/demo/
lucene/contrib/demo/src/java/org/apache/lucene/demo/xmlparser/
lucene/contrib/highlighter/src/java/org/apache/lucene/searc...
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/TermVectorComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/TermVectorComponent.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/TermVectorComponent.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/TermVectorComponent.java Sat Aug 27 13:27:01 2011
@@ -1,14 +1,22 @@
package org.apache.solr.handler.component;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Fieldable;
-import org.apache.lucene.document.SetBasedFieldSelector;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.lucene.index.FieldInfo;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.MultiFields;
+import org.apache.lucene.index.StoredFieldVisitor;
import org.apache.lucene.index.TermVectorMapper;
import org.apache.lucene.index.TermVectorOffsetInfo;
import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
+import org.apache.lucene.store.IndexInput;
import org.apache.lucene.util.BytesRef;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.CommonParams;
@@ -26,15 +34,6 @@ import org.apache.solr.search.SolrIndexS
import org.apache.solr.util.SolrPluginUtils;
import org.apache.solr.util.plugin.SolrCoreAware;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -194,8 +193,42 @@ public class TermVectorComponent extends
if (keyField != null) {
uniqFieldName = keyField.getName();
}
- //Only load the id field to get the uniqueKey of that field
- SetBasedFieldSelector fieldSelector = new SetBasedFieldSelector(Collections.singleton(uniqFieldName), Collections.<String>emptySet());
+ //Only load the id field to get the uniqueKey of that
+ //field
+
+ final String finalUniqFieldName = uniqFieldName;
+
+ final List<String> uniqValues = new ArrayList<String>();
+ final StoredFieldVisitor getUniqValue = new StoredFieldVisitor() {
+ @Override
+ public boolean stringField(FieldInfo fieldInfo, IndexInput in, int numUTF8Bytes) throws IOException {
+ if (fieldInfo.name.equals(finalUniqFieldName)) {
+ final byte[] b = new byte[numUTF8Bytes];
+ in.readBytes(b, 0, b.length);
+ uniqValues.add(new String(b, "UTF-8"));
+ } else {
+ in.seek(in.getFilePointer() + numUTF8Bytes);
+ }
+ return false;
+ }
+
+ @Override
+ public boolean intField(FieldInfo fieldInfo, int value) throws IOException {
+ if (fieldInfo.name.equals(finalUniqFieldName)) {
+ uniqValues.add(Integer.toString(value));
+ }
+ return false;
+ }
+
+ @Override
+ public boolean longField(FieldInfo fieldInfo, long value) throws IOException {
+ if (fieldInfo.name.equals(finalUniqFieldName)) {
+ uniqValues.add(Long.toString(value));
+ }
+ return false;
+ }
+ };
+
TVMapper mapper = new TVMapper(reader);
mapper.fieldOptions = allFields; //this will only stay set if fieldOptions.isEmpty() (in other words, only if the user didn't set any fields)
while (iter.hasNext()) {
@@ -205,13 +238,11 @@ public class TermVectorComponent extends
termVectors.add("doc-" + docId, docNL);
if (keyField != null) {
- Document document = reader.document(docId, fieldSelector);
- Fieldable uniqId = document.getFieldable(uniqFieldName);
+ reader.document(docId, getUniqValue);
String uniqVal = null;
- if (uniqId != null) {
- uniqVal = keyField.getType().storedToReadable(uniqId);
- }
- if (uniqVal != null) {
+ if (uniqValues.size() != 0) {
+ uniqVal = uniqValues.get(0);
+ uniqValues.clear();
docNL.add("uniqueKey", uniqVal);
termVectors.add("uniqueKeyFieldName", uniqFieldName);
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java Sat Aug 27 13:27:01 2011
@@ -33,6 +33,7 @@ import org.apache.lucene.analysis.TokenF
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
import org.apache.lucene.document.Document;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.highlight.*;
import org.apache.lucene.search.vectorhighlight.FastVectorHighlighter;
@@ -416,7 +417,14 @@ public class DefaultSolrHighlighter exte
// END: Hack
SolrParams params = req.getParams();
- String[] docTexts = doc.getValues(fieldName);
+ IndexableField[] docFields = doc.getFields(fieldName);
+ List<String> listFields = new ArrayList<String>();
+ for (IndexableField field : docFields) {
+ listFields.add(field.stringValue());
+ }
+
+ String[] docTexts = (String[]) listFields.toArray(new String[listFields.size()]);
+
// according to Document javadoc, doc.getValues() never returns null. check empty instead of null
if (docTexts.length == 0) return;
@@ -537,7 +545,15 @@ public class DefaultSolrHighlighter exte
private void alternateField( NamedList docSummaries, SolrParams params, Document doc, String fieldName ){
String alternateField = params.getFieldParam(fieldName, HighlightParams.ALTERNATE_FIELD);
if (alternateField != null && alternateField.length() > 0) {
- String[] altTexts = doc.getValues(alternateField);
+ IndexableField[] docFields = doc.getFields(alternateField);
+ List<String> listFields = new ArrayList<String>();
+ for (IndexableField field : docFields) {
+ if (field.binaryValue() == null)
+ listFields.add(field.stringValue());
+ }
+
+ String[] altTexts = listFields.toArray(new String[listFields.size()]);
+
if (altTexts != null && altTexts.length > 0){
int alternateFieldLen = params.getFieldInt(fieldName, HighlightParams.ALTERNATE_FIELD_LENGTH,0);
if( alternateFieldLen <= 0 ){
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java Sat Aug 27 13:27:01 2011
@@ -16,13 +16,16 @@
*/
package org.apache.solr.response;
+import java.io.*;
+import java.util.*;
+
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
+import org.apache.lucene.util.BytesRef;
import org.apache.solr.common.SolrDocument;
-import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.params.CommonParams;
-import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.JavaBinCodec;
+import org.apache.solr.common.util.NamedList;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.transform.DocTransformer;
import org.apache.solr.response.transform.TransformContext;
@@ -33,9 +36,6 @@ import org.apache.solr.search.SolrIndexS
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.*;
-import java.util.*;
-
public class BinaryResponseWriter implements BinaryQueryResponseWriter {
private static final Logger LOG = LoggerFactory.getLogger(BinaryResponseWriter.class);
@@ -159,7 +159,7 @@ public class BinaryResponseWriter implem
public SolrDocument getDoc(Document doc) {
SolrDocument solrDoc = new SolrDocument();
- for (Fieldable f : doc.getFields()) {
+ for (IndexableField f : doc) {
String fieldName = f.name();
if( !returnFields.wantsField(fieldName) )
continue;
@@ -168,8 +168,16 @@ public class BinaryResponseWriter implem
if(sf != null) ft =sf.getType();
Object val;
if (ft == null) { // handle fields not in the schema
- if (f.isBinary()) val = f.getBinaryValue();
- else val = f.stringValue();
+ BytesRef bytesRef = f.binaryValue();
+ if (bytesRef != null) {
+ if (bytesRef.offset == 0 && bytesRef.length == bytesRef.bytes.length) {
+ val = bytesRef.bytes;
+ } else {
+ final byte[] bytes = new byte[bytesRef.length];
+ val = bytes;
+ System.arraycopy(bytesRef.bytes, bytesRef.offset, bytes, 0, bytesRef.length);
+ }
+ } else val = f.stringValue();
} else {
try {
if (useFieldObjects && KNOWN_TYPES.contains(ft.getClass())) {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java Sat Aug 27 13:27:01 2011
@@ -19,8 +19,7 @@ package org.apache.solr.response;
import org.apache.commons.csv.CSVPrinter;
import org.apache.commons.csv.CSVStrategy;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrException;
@@ -32,10 +31,8 @@ import org.apache.solr.request.SolrQuery
import org.apache.solr.schema.FieldType;
import org.apache.solr.schema.SchemaField;
import org.apache.solr.schema.StrField;
-import org.apache.solr.search.DocIterator;
import org.apache.solr.search.DocList;
import org.apache.solr.search.ReturnFields;
-import org.apache.solr.search.SolrIndexSearcher;
import java.io.CharArrayWriter;
import java.io.IOException;
@@ -146,7 +143,7 @@ class CSVWriter extends TextResponseWrit
CSVSharedBufPrinter mvPrinter; // printer used to encode multiple values in a single CSV value
// used to collect values
- List<Fieldable> values = new ArrayList<Fieldable>(1); // low starting amount in case there are many fields
+ List<IndexableField> values = new ArrayList<IndexableField>(1); // low starting amount in case there are many fields
int tmp;
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java Sat Aug 27 13:27:01 2011
@@ -26,7 +26,7 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Set;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.util.NamedList;
@@ -302,10 +302,10 @@ class JSONWriter extends TextResponseWri
protected static class MultiValueField {
final SchemaField sfield;
- final ArrayList<Fieldable> fields;
- MultiValueField(SchemaField sfield, Fieldable firstVal) {
+ final ArrayList<IndexableField> fields;
+ MultiValueField(SchemaField sfield, IndexableField firstVal) {
this.sfield = sfield;
- this.fields = new ArrayList<Fieldable>(4);
+ this.fields = new ArrayList<IndexableField>(4);
this.fields.add(firstVal);
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java Sat Aug 27 13:27:01 2011
@@ -22,7 +22,7 @@ import java.io.Writer;
import java.util.*;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.util.FastWriter;
@@ -120,8 +120,8 @@ public abstract class TextResponseWriter
} else if (val instanceof String) {
writeStr(name, val.toString(), true);
// micro-optimization... using toString() avoids a cast first
- } else if (val instanceof Fieldable) {
- Fieldable f = (Fieldable)val;
+ } else if (val instanceof IndexableField) {
+ IndexableField f = (IndexableField)val;
SchemaField sf = schema.getFieldOrNull( f.name() );
if( sf != null ) {
sf.getType().write(this, name, f);
@@ -202,7 +202,7 @@ public abstract class TextResponseWriter
public final SolrDocument toSolrDocument( Document doc )
{
SolrDocument out = new SolrDocument();
- for( Fieldable f : doc.getFields() ) {
+ for( IndexableField f : doc) {
// Make sure multivalued fields are represented as lists
Object existing = out.get(f.name());
if (existing == null) {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BCDIntField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BCDIntField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BCDIntField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BCDIntField.java Sat Aug 27 13:27:01 2011
@@ -20,7 +20,7 @@ package org.apache.solr.schema;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.search.SortField;
import org.apache.solr.search.QParser;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.solr.util.BCDUtils;
import org.apache.solr.response.TextResponseWriter;
@@ -51,13 +51,13 @@ public class BCDIntField extends FieldTy
}
@Override
- public String toExternal(Fieldable f) {
+ public String toExternal(IndexableField f) {
return indexedToReadable(f.stringValue());
}
// Note, this can't return type 'Integer' because BCDStrField and BCDLong extend it
@Override
- public Object toObject(Fieldable f) {
+ public Object toObject(IndexableField f) {
return Integer.valueOf( toExternal(f) );
}
@@ -67,7 +67,7 @@ public class BCDIntField extends FieldTy
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
writer.writeInt(name,toExternal(f));
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BCDLongField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BCDLongField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BCDLongField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BCDLongField.java Sat Aug 27 13:27:01 2011
@@ -17,13 +17,13 @@
package org.apache.solr.schema;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
/**
*
*/
public class BCDLongField extends BCDIntField {
@Override
- public Long toObject(Fieldable f) {
+ public Long toObject(IndexableField f) {
return Long.valueOf( toExternal(f) );
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BCDStrField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BCDStrField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BCDStrField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BCDStrField.java Sat Aug 27 13:27:01 2011
@@ -17,7 +17,7 @@
package org.apache.solr.schema;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
/**
*
*/
@@ -27,7 +27,7 @@ public class BCDStrField extends BCDIntF
* is not an integer, it will not survive the base10k conversion!
*/
@Override
- public String toObject(Fieldable f) {
+ public String toObject(IndexableField f) {
return toExternal(f);
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BinaryField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BinaryField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BinaryField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BinaryField.java Sat Aug 27 13:27:01 2011
@@ -17,24 +17,25 @@
package org.apache.solr.schema;
-import org.apache.solr.response.TextResponseWriter;
-import org.apache.solr.common.util.Base64;
-import org.apache.lucene.document.Fieldable;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.search.SortField;
-
import java.io.IOException;
import java.nio.ByteBuffer;
+import org.apache.lucene.document.Field;
+import org.apache.lucene.index.IndexableField;
+import org.apache.lucene.search.SortField;
+import org.apache.lucene.util.BytesRef;
+import org.apache.solr.common.util.Base64;
+import org.apache.solr.response.TextResponseWriter;
+
public class BinaryField extends FieldType {
- private String toBase64String(ByteBuffer buf) {
+ private String toBase64String(ByteBuffer buf) {
return Base64.byteArrayToBase64(buf.array(), buf.position(), buf.limit()-buf.position());
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
writer.writeStr(name, toBase64String(toObject(f)), false);
}
@@ -45,17 +46,18 @@ public class BinaryField extends FieldTy
@Override
- public String toExternal(Fieldable f) {
+ public String toExternal(IndexableField f) {
return toBase64String(toObject(f));
}
-
+
@Override
- public ByteBuffer toObject(Fieldable f) {
- return ByteBuffer.wrap(f.getBinaryValue(), f.getBinaryOffset(), f.getBinaryLength() ) ;
+ public ByteBuffer toObject(IndexableField f) {
+ BytesRef bytes = f.binaryValue();
+ return ByteBuffer.wrap(bytes.bytes, bytes.offset, bytes.length);
}
@Override
- public Fieldable createField(SchemaField field, Object val, float boost) {
+ public IndexableField createField(SchemaField field, Object val, float boost) {
if (val == null) return null;
if (!field.stored()) {
log.trace("Ignoring unstored binary field: " + field);
@@ -79,7 +81,7 @@ public class BinaryField extends FieldTy
len = buf.length;
}
- Field f = new Field(field.getName(), buf, offset, len);
+ Field f = new org.apache.lucene.document.BinaryField(field.getName(), buf, offset, len);
f.setBoost(boost);
return f;
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BoolField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BoolField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BoolField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/BoolField.java Sat Aug 27 13:27:01 2011
@@ -18,13 +18,14 @@
package org.apache.solr.schema;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexableField;
+import org.apache.lucene.search.FieldCache;
+import org.apache.lucene.search.SortField;
+import org.apache.lucene.util.BytesRef;
import org.apache.lucene.queries.function.DocValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.docvalues.BoolDocValues;
import org.apache.lucene.queries.function.valuesource.OrdFieldSource;
-import org.apache.lucene.search.FieldCache;
-import org.apache.lucene.search.SortField;
-import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.CharsRef;
import org.apache.lucene.util.mutable.MutableValue;
import org.apache.lucene.util.mutable.MutableValueBool;
@@ -33,7 +34,6 @@ import org.apache.solr.search.function.*
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
-import org.apache.lucene.document.Fieldable;
import org.apache.solr.response.TextResponseWriter;
import org.apache.solr.analysis.SolrAnalyzer;
@@ -117,12 +117,12 @@ public class BoolField extends FieldType
}
@Override
- public String toExternal(Fieldable f) {
+ public String toExternal(IndexableField f) {
return indexedToReadable(f.stringValue());
}
@Override
- public Boolean toObject(Fieldable f) {
+ public Boolean toObject(IndexableField f) {
return Boolean.valueOf( toExternal(f) );
}
@@ -151,7 +151,7 @@ public class BoolField extends FieldType
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
writer.writeBool(name, f.stringValue().charAt(0) == 'T');
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/ByteField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/ByteField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/ByteField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/ByteField.java Sat Aug 27 13:27:01 2011
@@ -16,9 +16,9 @@ package org.apache.solr.schema;
* limitations under the License.
*/
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.valuesource.ByteFieldSource;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.cache.ByteValuesCreator;
import org.apache.lucene.search.cache.CachedArrayCreator;
@@ -52,7 +52,7 @@ public class ByteField extends FieldType
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
String s = f.stringValue();
// these values may be from a legacy lucene index, which may
@@ -77,7 +77,7 @@ public class ByteField extends FieldType
}
@Override
- public Byte toObject(Fieldable f) {
+ public Byte toObject(IndexableField f) {
return Byte.valueOf(toExternal(f));
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/CollationField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/CollationField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/CollationField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/CollationField.java Sat Aug 27 13:27:01 2011
@@ -31,7 +31,7 @@ import org.apache.lucene.analysis.Analyz
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.TermToBytesRefAttribute;
import org.apache.lucene.collation.CollationKeyAnalyzer;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.TermRangeQuery;
@@ -185,7 +185,7 @@ public class CollationField extends Fiel
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
writer.writeStr(name, f.stringValue(), true);
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/DateField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/DateField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/DateField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/DateField.java Sat Aug 27 13:27:01 2011
@@ -17,15 +17,15 @@
package org.apache.solr.schema;
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.index.IndexReader.AtomicReaderContext;
+import org.apache.lucene.index.IndexableField;
+import org.apache.lucene.search.Query;
+import org.apache.lucene.search.SortField;
+import org.apache.lucene.search.TermRangeQuery;
import org.apache.lucene.queries.function.DocValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.SortField;
-import org.apache.lucene.search.TermRangeQuery;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.CharsRef;
import org.apache.solr.common.SolrException;
@@ -186,7 +186,7 @@ public class DateField extends FieldType
}
}
- public Fieldable createField(SchemaField field, Object value, float boost) {
+ public IndexableField createField(SchemaField field, Object value, float boost) {
// Convert to a string before indexing
if(value instanceof Date) {
value = toInternal( (Date)value ) + Z;
@@ -211,7 +211,7 @@ public class DateField extends FieldType
}
@Override
- public String toExternal(Fieldable f) {
+ public String toExternal(IndexableField f) {
return indexedToReadable(f.stringValue());
}
@@ -220,7 +220,7 @@ public class DateField extends FieldType
}
@Override
- public Date toObject(Fieldable f) {
+ public Date toObject(IndexableField f) {
try {
return parseDate( toExternal(f) );
}
@@ -235,7 +235,7 @@ public class DateField extends FieldType
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
writer.writeDate(name, toExternal(f));
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/DoubleField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/DoubleField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/DoubleField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/DoubleField.java Sat Aug 27 13:27:01 2011
@@ -17,9 +17,9 @@
package org.apache.solr.schema;
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.valuesource.DoubleFieldSource;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.cache.CachedArrayCreator;
import org.apache.lucene.search.cache.DoubleValuesCreator;
@@ -52,7 +52,7 @@ public class DoubleField extends FieldTy
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
String s = f.stringValue();
// these values may be from a legacy lucene index, which may
@@ -78,7 +78,7 @@ public class DoubleField extends FieldTy
@Override
- public Double toObject(Fieldable f) {
+ public Double toObject(IndexableField f) {
return Double.valueOf(toExternal(f));
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/ExternalFileField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/ExternalFileField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/ExternalFileField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/ExternalFileField.java Sat Aug 27 13:27:01 2011
@@ -18,7 +18,7 @@ package org.apache.solr.schema;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.search.SortField;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.solr.search.function.FileFloatSource;
import org.apache.solr.search.QParser;
import org.apache.solr.response.TextResponseWriter;
@@ -76,7 +76,7 @@ public class ExternalFileField extends F
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
throw new UnsupportedOperationException();
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/FieldType.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/FieldType.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/FieldType.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/FieldType.java Sat Aug 27 13:27:01 2011
@@ -22,8 +22,8 @@ import org.apache.lucene.analysis.Tokeni
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
import org.apache.lucene.document.Field;
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.index.FieldInfo.IndexOptions;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.Term;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.search.Query;
@@ -91,7 +91,7 @@ public abstract class FieldType extends
}
/**
- * A "polyField" is a FieldType that can produce more than one Fieldable instance for a single value, via the {@link #createFields(org.apache.solr.schema.SchemaField, Object, float)} method. This is useful
+ * A "polyField" is a FieldType that can produce more than one IndexableField instance for a single value, via the {@link #createFields(org.apache.solr.schema.SchemaField, Object, float)} method. This is useful
* when hiding the implementation details of a field from the Solr end user. For instance, a spatial point may be represented by multiple different fields.
* @return true if the {@link #createFields(org.apache.solr.schema.SchemaField, Object, float)} method may return more than one field
*/
@@ -235,7 +235,7 @@ public abstract class FieldType extends
*
*
*/
- public Fieldable createField(SchemaField field, Object value, float boost) {
+ public IndexableField createField(SchemaField field, Object value, float boost) {
if (!field.indexed() && !field.stored()) {
if (log.isTraceEnabled())
log.trace("Ignoring unindexed/unstored field: " + field);
@@ -250,78 +250,47 @@ public abstract class FieldType extends
}
if (val==null) return null;
- return createField(field.getName(), val,
- getFieldStore(field, val), getFieldIndex(field, val),
- getFieldTermVec(field, val), field.omitNorms(),
- getIndexOptions(field, val), boost);
+ org.apache.lucene.document.FieldType newType = new org.apache.lucene.document.FieldType();
+ newType.setIndexed(field.indexed());
+ newType.setTokenized(field.isTokenized());
+ newType.setStored(field.stored());
+ newType.setOmitNorms(field.omitNorms());
+ newType.setIndexOptions(getIndexOptions(field, val));
+ newType.setStoreTermVectors(field.storeTermVector());
+ newType.setStoreTermVectorOffsets(field.storeTermOffsets());
+ newType.setStoreTermVectorPositions(field.storeTermPositions());
+
+ return createField(field.getName(), val, newType, boost);
}
-
/**
* Create the field from native Lucene parts. Mostly intended for use by FieldTypes outputing multiple
* Fields per SchemaField
* @param name The name of the field
* @param val The _internal_ value to index
- * @param storage {@link org.apache.lucene.document.Field.Store}
- * @param index {@link org.apache.lucene.document.Field.Index}
- * @param vec {@link org.apache.lucene.document.Field.TermVector}
- * @param omitNorms true if norms should be omitted
- * @param options options for what should be indexed in the postings
+ * @param type {@link org.apache.lucene.document.FieldType}
* @param boost The boost value
- * @return the {@link org.apache.lucene.document.Fieldable}.
+ * @return the {@link org.apache.lucene.index.IndexableField}.
*/
- protected Fieldable createField(String name, String val, Field.Store storage, Field.Index index,
- Field.TermVector vec, boolean omitNorms, IndexOptions options, float boost){
- Field f = new Field(name,
- val,
- storage,
- index,
- vec);
- if (index.isIndexed()) {
- f.setOmitNorms(omitNorms);
- f.setIndexOptions(options);
- f.setBoost(boost);
- }
+ protected IndexableField createField(String name, String val, org.apache.lucene.document.FieldType type, float boost){
+ Field f = new Field(name, type, val);
+ f.setBoost(boost);
return f;
}
/**
- * Given a {@link org.apache.solr.schema.SchemaField}, create one or more {@link org.apache.lucene.document.Fieldable} instances
+ * Given a {@link org.apache.solr.schema.SchemaField}, create one or more {@link org.apache.lucene.index.IndexableField} instances
* @param field the {@link org.apache.solr.schema.SchemaField}
* @param value The value to add to the field
* @param boost The boost to apply
- * @return An array of {@link org.apache.lucene.document.Fieldable}
+ * @return An array of {@link org.apache.lucene.index.IndexableField}
*
* @see #createField(SchemaField, Object, float)
* @see #isPolyField()
*/
- public Fieldable[] createFields(SchemaField field, Object value, float boost) {
- Fieldable f = createField( field, value, boost);
- return f==null ? new Fieldable[]{} : new Fieldable[]{f};
- }
-
- /* Helpers for field construction */
- protected Field.TermVector getFieldTermVec(SchemaField field,
- String internalVal) {
- Field.TermVector ftv = Field.TermVector.NO;
- if (field.storeTermPositions() && field.storeTermOffsets())
- ftv = Field.TermVector.WITH_POSITIONS_OFFSETS;
- else if (field.storeTermPositions())
- ftv = Field.TermVector.WITH_POSITIONS;
- else if (field.storeTermOffsets())
- ftv = Field.TermVector.WITH_OFFSETS;
- else if (field.storeTermVector())
- ftv = Field.TermVector.YES;
- return ftv;
- }
- protected Field.Store getFieldStore(SchemaField field,
- String internalVal) {
- return field.stored() ? Field.Store.YES : Field.Store.NO;
- }
- protected Field.Index getFieldIndex(SchemaField field,
- String internalVal) {
- return field.indexed() ? (isTokenized() ? Field.Index.ANALYZED :
- Field.Index.NOT_ANALYZED) : Field.Index.NO;
+ public IndexableField[] createFields(SchemaField field, Object value, float boost) {
+ IndexableField f = createField( field, value, boost);
+ return f==null ? new IndexableField[]{} : new IndexableField[]{f};
}
protected IndexOptions getIndexOptions(SchemaField field,
String internalVal) {
@@ -350,9 +319,9 @@ public abstract class FieldType extends
* value
* @see #toInternal
*/
- public String toExternal(Fieldable f) {
+ public String toExternal(IndexableField f) {
// currently used in writing XML of the search result (but perhaps
- // a more efficient toXML(Fieldable f, Writer w) should be used
+ // a more efficient toXML(IndexableField f, Writer w) should be used
// in the future.
return f.stringValue();
}
@@ -362,14 +331,14 @@ public abstract class FieldType extends
* @see #toInternal
* @since solr 1.3
*/
- public Object toObject(Fieldable f) {
+ public Object toObject(IndexableField f) {
return toExternal(f); // by default use the string
}
public Object toObject(SchemaField sf, BytesRef term) {
final CharsRef ref = new CharsRef(term.length);
indexedToReadable(term, ref);
- final Fieldable f = createField(sf, ref.toString(), 1.0f);
+ final IndexableField f = createField(sf, ref.toString(), 1.0f);
return toObject(f);
}
@@ -385,12 +354,12 @@ public abstract class FieldType extends
}
/** Given the stored field, return the human readable representation */
- public String storedToReadable(Fieldable f) {
+ public String storedToReadable(IndexableField f) {
return toExternal(f);
}
/** Given the stored field, return the indexed form */
- public String storedToIndexed(Fieldable f) {
+ public String storedToIndexed(IndexableField f) {
// right now, the transformation of single valued fields like SortableInt
// is done when the Field is created, not at analysis time... this means
// that the indexed form is the same as the stored field form.
@@ -569,7 +538,7 @@ public abstract class FieldType extends
/**
* calls back to TextResponseWriter to write the field value
*/
- public abstract void write(TextResponseWriter writer, String name, Fieldable f) throws IOException;
+ public abstract void write(TextResponseWriter writer, String name, IndexableField f) throws IOException;
/**
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/FloatField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/FloatField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/FloatField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/FloatField.java Sat Aug 27 13:27:01 2011
@@ -23,7 +23,7 @@ import org.apache.lucene.search.SortFiel
import org.apache.lucene.search.cache.CachedArrayCreator;
import org.apache.lucene.search.cache.FloatValuesCreator;
import org.apache.solr.search.QParser;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.solr.response.TextResponseWriter;
import java.util.Map;
@@ -50,7 +50,7 @@ public class FloatField extends FieldTyp
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
String s = f.stringValue();
// these values may be from a legacy lucene index, which may
@@ -75,7 +75,7 @@ public class FloatField extends FieldTyp
}
@Override
- public Float toObject(Fieldable f) {
+ public Float toObject(IndexableField f) {
return Float.valueOf( toExternal(f) );
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/GeoHashField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/GeoHashField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/GeoHashField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/GeoHashField.java Sat Aug 27 13:27:01 2011
@@ -17,9 +17,9 @@
package org.apache.solr.schema;
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.valuesource.LiteralValueSource;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.SortField;
import org.apache.lucene.spatial.geohash.GeoHashUtils;
@@ -68,14 +68,14 @@ public class GeoHashField extends FieldT
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f)
+ public void write(TextResponseWriter writer, String name, IndexableField f)
throws IOException {
writer.writeStr(name, toExternal(f), false);
}
@Override
- public String toExternal(Fieldable f) {
+ public String toExternal(IndexableField f) {
double[] latLon = GeoHashUtils.decode(f.stringValue());
return latLon[0] + "," + latLon[1];
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/IndexSchema.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/IndexSchema.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/IndexSchema.java Sat Aug 27 13:27:01 2011
@@ -19,9 +19,8 @@ package org.apache.solr.schema;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.search.DefaultSimilarity;
-import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Similarity;
import org.apache.lucene.search.SimilarityProvider;
import org.apache.lucene.util.Version;
@@ -34,7 +33,6 @@ import org.apache.solr.common.util.Syste
import org.apache.solr.core.SolrConfig;
import org.apache.solr.core.Config;
import org.apache.solr.core.SolrResourceLoader;
-import org.apache.solr.search.SolrQueryParser;
import org.apache.solr.search.SolrSimilarityProvider;
import org.apache.solr.util.plugin.SolrCoreAware;
import org.w3c.dom.*;
@@ -43,8 +41,6 @@ import org.xml.sax.InputSource;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathFactory;
-import java.io.InputStream;
import java.io.Reader;
import java.io.IOException;
import java.util.*;
@@ -258,8 +254,8 @@ public final class IndexSchema {
* @return null if this schema has no unique key field
* @see #printableUniqueKey
*/
- public Fieldable getUniqueKeyField(org.apache.lucene.document.Document doc) {
- return doc.getFieldable(uniqueKeyFieldName); // this should return null if name is null
+ public IndexableField getUniqueKeyField(org.apache.lucene.document.Document doc) {
+ return doc.getField(uniqueKeyFieldName); // this should return null if name is null
}
/**
@@ -268,8 +264,8 @@ public final class IndexSchema {
* @return null if this schema has no unique key field
*/
public String printableUniqueKey(org.apache.lucene.document.Document doc) {
- Fieldable f = doc.getFieldable(uniqueKeyFieldName);
- return f==null ? null : uniqueKeyFieldType.toExternal(f);
+ IndexableField f = doc.getField(uniqueKeyFieldName);
+ return f==null ? null : uniqueKeyFieldType.toExternal(f);
}
private SchemaField getIndexedField(String fname) {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/IntField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/IntField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/IntField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/IntField.java Sat Aug 27 13:27:01 2011
@@ -23,7 +23,7 @@ import org.apache.lucene.search.SortFiel
import org.apache.lucene.search.cache.CachedArrayCreator;
import org.apache.lucene.search.cache.IntValuesCreator;
import org.apache.solr.search.QParser;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.solr.response.TextResponseWriter;
import java.util.Map;
@@ -50,7 +50,7 @@ public class IntField extends FieldType
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
String s = f.stringValue();
// these values may be from a legacy lucene index, which may
@@ -75,7 +75,7 @@ public class IntField extends FieldType
}
@Override
- public Integer toObject(Fieldable f) {
+ public Integer toObject(IndexableField f) {
return Integer.valueOf( toExternal(f) );
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/LatLonType.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/LatLonType.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/LatLonType.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/LatLonType.java Sat Aug 27 13:27:01 2011
@@ -16,9 +16,8 @@ package org.apache.solr.schema;
* limitations under the License.
*/
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.Fieldable;
-import org.apache.lucene.index.FieldInfo.IndexOptions;
+import org.apache.lucene.document.FieldType;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.queries.function.DocValues;
@@ -55,10 +54,10 @@ public class LatLonType extends Abstract
}
@Override
- public Fieldable[] createFields(SchemaField field, Object value, float boost) {
+ public IndexableField[] createFields(SchemaField field, Object value, float boost) {
String externalVal = value.toString();
//we could have tileDiff + 3 fields (two for the lat/lon, one for storage)
- Fieldable[] f = new Fieldable[(field.indexed() ? 2 : 0) + (field.stored() ? 1 : 0)];
+ IndexableField[] f = new IndexableField[(field.indexed() ? 2 : 0) + (field.stored() ? 1 : 0)];
if (field.indexed()) {
int i = 0;
double[] latLon = new double[0];
@@ -76,9 +75,9 @@ public class LatLonType extends Abstract
}
if (field.stored()) {
- f[f.length - 1] = createField(field.getName(), externalVal,
- getFieldStore(field, externalVal), Field.Index.NO, Field.TermVector.NO,
- false, IndexOptions.DOCS_AND_FREQS_AND_POSITIONS, boost);
+ FieldType customType = new FieldType();
+ customType.setStored(true);
+ f[f.length - 1] = createField(field.getName(), externalVal, customType, boost);
}
return f;
}
@@ -268,7 +267,7 @@ public class LatLonType extends Abstract
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
writer.writeStr(name, f.stringValue(), false);
}
@@ -282,7 +281,7 @@ public class LatLonType extends Abstract
//It never makes sense to create a single field, so make it impossible to happen
@Override
- public Fieldable createField(SchemaField field, Object value, float boost) {
+ public IndexableField createField(SchemaField field, Object value, float boost) {
throw new UnsupportedOperationException("LatLonType uses multiple fields. field=" + field.getName());
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/LongField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/LongField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/LongField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/LongField.java Sat Aug 27 13:27:01 2011
@@ -17,9 +17,9 @@
package org.apache.solr.schema;
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.valuesource.LongFieldSource;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.cache.CachedArrayCreator;
import org.apache.lucene.search.cache.LongValuesCreator;
@@ -52,7 +52,7 @@ public class LongField extends FieldType
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
String s = f.stringValue();
// these values may be from a legacy lucene index, which may
@@ -77,7 +77,7 @@ public class LongField extends FieldType
}
@Override
- public Long toObject(Fieldable f) {
+ public Long toObject(IndexableField f) {
return Long.valueOf( toExternal(f) );
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/PointType.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/PointType.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/PointType.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/PointType.java Sat Aug 27 13:27:01 2011
@@ -17,11 +17,9 @@
package org.apache.solr.schema;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.Fieldable;
-import org.apache.lucene.index.FieldInfo.IndexOptions;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.valuesource.VectorValueSource;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.Query;
@@ -69,7 +67,7 @@ public class PointType extends Coordinat
}
@Override
- public Fieldable[] createFields(SchemaField field, Object value, float boost) {
+ public IndexableField[] createFields(SchemaField field, Object value, float boost) {
String externalVal = value.toString();
String[] point = new String[0];
try {
@@ -79,7 +77,7 @@ public class PointType extends Coordinat
}
// TODO: this doesn't currently support polyFields as sub-field types
- Fieldable[] f = new Fieldable[ (field.indexed() ? dimension : 0) + (field.stored() ? 1 : 0) ];
+ IndexableField[] f = new IndexableField[ (field.indexed() ? dimension : 0) + (field.stored() ? 1 : 0) ];
if (field.indexed()) {
for (int i=0; i<dimension; i++) {
@@ -89,9 +87,9 @@ public class PointType extends Coordinat
if (field.stored()) {
String storedVal = externalVal; // normalize or not?
- f[f.length - 1] = createField(field.getName(), storedVal,
- getFieldStore(field, storedVal), Field.Index.NO, Field.TermVector.NO,
- false, IndexOptions.DOCS_AND_FREQS_AND_POSITIONS, boost);
+ org.apache.lucene.document.FieldType customType = new org.apache.lucene.document.FieldType();
+ customType.setStored(true);
+ f[f.length - 1] = createField(field.getName(), storedVal, customType, boost);
}
return f;
@@ -114,12 +112,12 @@ public class PointType extends Coordinat
*
*/
@Override
- public Fieldable createField(SchemaField field, Object value, float boost) {
+ public IndexableField createField(SchemaField field, Object value, float boost) {
throw new UnsupportedOperationException("PointType uses multiple fields. field=" + field.getName());
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
writer.writeStr(name, f.stringValue(), false);
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/RandomSortField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/RandomSortField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/RandomSortField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/RandomSortField.java Sat Aug 27 13:27:01 2011
@@ -20,7 +20,7 @@ package org.apache.solr.schema;
import java.io.IOException;
import java.util.Map;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexReader.AtomicReaderContext;
import org.apache.lucene.queries.function.DocValues;
@@ -97,7 +97,7 @@ public class RandomSortField extends Fie
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException { }
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException { }
private static FieldComparatorSource randomComparatorSource = new FieldComparatorSource() {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SchemaField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SchemaField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SchemaField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SchemaField.java Sat Aug 27 13:27:01 2011
@@ -18,8 +18,7 @@
package org.apache.solr.schema;
import org.apache.solr.common.SolrException;
-import org.apache.solr.common.SolrException.ErrorCode;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.search.SortField;
import org.apache.solr.search.QParser;
@@ -99,11 +98,11 @@ public final class SchemaField extends F
boolean isBinary() { return (properties & BINARY)!=0; }
- public Fieldable createField(Object val, float boost) {
+ public IndexableField createField(Object val, float boost) {
return type.createField(this,val,boost);
}
- public Fieldable[] createFields(Object val, float boost) {
+ public IndexableField[] createFields(Object val, float boost) {
return type.createFields(this,val,boost);
}
@@ -125,7 +124,7 @@ public final class SchemaField extends F
+ "}";
}
- public void write(TextResponseWriter writer, String name, Fieldable val) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField val) throws IOException {
// name is passed in because it may be null if name should not be used.
type.write(writer,name,val);
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/ShortField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/ShortField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/ShortField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/ShortField.java Sat Aug 27 13:27:01 2011
@@ -16,9 +16,9 @@ package org.apache.solr.schema;
* limitations under the License.
*/
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.valuesource.ShortFieldSource;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.cache.CachedArrayCreator;
import org.apache.lucene.search.cache.ShortValuesCreator;
@@ -55,7 +55,7 @@ public class ShortField extends FieldTyp
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
String s = f.stringValue();
// these values may be from a legacy lucene index, which may
@@ -80,7 +80,7 @@ public class ShortField extends FieldTyp
}
@Override
- public Short toObject(Fieldable f) {
+ public Short toObject(IndexableField f) {
return Short.valueOf(toExternal(f));
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java Sat Aug 27 13:27:01 2011
@@ -27,8 +27,8 @@ import org.apache.lucene.util.CharsRef;
import org.apache.lucene.util.mutable.MutableValue;
import org.apache.lucene.util.mutable.MutableValueDouble;
import org.apache.solr.search.QParser;
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.index.IndexReader.AtomicReaderContext;
+import org.apache.lucene.index.IndexableField;
import org.apache.solr.util.NumberUtils;
import org.apache.solr.response.TextResponseWriter;
@@ -62,12 +62,12 @@ public class SortableDoubleField extends
}
@Override
- public String toExternal(Fieldable f) {
+ public String toExternal(IndexableField f) {
return indexedToReadable(f.stringValue());
}
@Override
- public Double toObject(Fieldable f) {
+ public Double toObject(IndexableField f) {
return NumberUtils.SortableStr2double(f.stringValue());
}
@@ -86,7 +86,7 @@ public class SortableDoubleField extends
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
String sval = f.stringValue();
writer.writeDouble(name, NumberUtils.SortableStr2double(sval));
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java Sat Aug 27 13:27:01 2011
@@ -27,8 +27,8 @@ import org.apache.lucene.util.CharsRef;
import org.apache.lucene.util.mutable.MutableValue;
import org.apache.lucene.util.mutable.MutableValueFloat;
import org.apache.solr.search.QParser;
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.index.IndexReader.AtomicReaderContext;
+import org.apache.lucene.index.IndexableField;
import org.apache.solr.util.NumberUtils;
import org.apache.solr.response.TextResponseWriter;
@@ -62,12 +62,12 @@ public class SortableFloatField extends
}
@Override
- public String toExternal(Fieldable f) {
+ public String toExternal(IndexableField f) {
return indexedToReadable(f.stringValue());
}
@Override
- public Float toObject(Fieldable f) {
+ public Float toObject(IndexableField f) {
return NumberUtils.SortableStr2float(f.stringValue());
}
@@ -84,7 +84,7 @@ public class SortableFloatField extends
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
String sval = f.stringValue();
writer.writeFloat(name, NumberUtils.SortableStr2float(sval));
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableIntField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableIntField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableIntField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableIntField.java Sat Aug 27 13:27:01 2011
@@ -27,8 +27,8 @@ import org.apache.lucene.util.CharsRef;
import org.apache.lucene.util.mutable.MutableValue;
import org.apache.lucene.util.mutable.MutableValueInt;
import org.apache.solr.search.QParser;
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.index.IndexReader.AtomicReaderContext;
+import org.apache.lucene.index.IndexableField;
import org.apache.solr.util.NumberUtils;
import org.apache.solr.response.TextResponseWriter;
@@ -65,7 +65,7 @@ public class SortableIntField extends Fi
}
@Override
- public String toExternal(Fieldable f) {
+ public String toExternal(IndexableField f) {
return indexedToReadable(f.stringValue());
}
@@ -82,12 +82,12 @@ public class SortableIntField extends Fi
}
@Override
- public Integer toObject(Fieldable f) {
+ public Integer toObject(IndexableField f) {
return NumberUtils.SortableStr2int(f.stringValue(), 0, 3);
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
String sval = f.stringValue();
writer.writeInt(name, NumberUtils.SortableStr2int(sval,0,sval.length()));
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableLongField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableLongField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableLongField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/SortableLongField.java Sat Aug 27 13:27:01 2011
@@ -27,8 +27,8 @@ import org.apache.lucene.util.CharsRef;
import org.apache.lucene.util.mutable.MutableValue;
import org.apache.lucene.util.mutable.MutableValueLong;
import org.apache.solr.search.QParser;
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.index.IndexReader.AtomicReaderContext;
+import org.apache.lucene.index.IndexableField;
import org.apache.solr.util.NumberUtils;
import org.apache.solr.response.TextResponseWriter;
@@ -72,19 +72,19 @@ public class SortableLongField extends F
charsRef.copy(indexedToReadable, 0, indexedToReadable.length);
return charsRef;
}
-
+
@Override
- public String toExternal(Fieldable f) {
+ public String toExternal(IndexableField f) {
return indexedToReadable(f.stringValue());
}
@Override
- public Long toObject(Fieldable f) {
+ public Long toObject(IndexableField f) {
return NumberUtils.SortableStr2long(f.stringValue(),0,5);
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
String sval = f.stringValue();
writer.writeLong(name, NumberUtils.SortableStr2long(sval,0,sval.length()));
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/StrField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/StrField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/StrField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/StrField.java Sat Aug 27 13:27:01 2011
@@ -19,7 +19,7 @@ package org.apache.solr.schema;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.search.SortField;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.util.BytesRef;
import org.apache.solr.response.TextResponseWriter;
import org.apache.solr.search.QParser;
@@ -41,7 +41,7 @@ public class StrField extends FieldType
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
writer.writeStr(name, f.stringValue(), true);
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/TextField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/TextField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/TextField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/TextField.java Sat Aug 27 13:27:01 2011
@@ -24,7 +24,7 @@ import org.apache.lucene.search.TermQuer
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.MultiPhraseQuery;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.Term;
import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
@@ -74,7 +74,7 @@ public class TextField extends FieldType
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
writer.writeStr(name, f.stringValue(), true);
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/TrieDateField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/TrieDateField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/TrieDateField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/TrieDateField.java Sat Aug 27 13:27:01 2011
@@ -20,7 +20,7 @@ package org.apache.solr.schema;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.solr.search.QParser;
import org.apache.solr.response.TextResponseWriter;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.NumericRangeQuery;
@@ -45,7 +45,7 @@ public class TrieDateField extends DateF
}
@Override
- public Date toObject(Fieldable f) {
+ public Date toObject(IndexableField f) {
return (Date) wrappedField.toObject(f);
}
@@ -73,7 +73,7 @@ public class TrieDateField extends DateF
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
wrappedField.write(writer, name, f);
}
@@ -88,7 +88,7 @@ public class TrieDateField extends DateF
}
@Override
- public String storedToReadable(Fieldable f) {
+ public String storedToReadable(IndexableField f) {
return wrappedField.storedToReadable(f);
}
@@ -103,7 +103,7 @@ public class TrieDateField extends DateF
}
@Override
- public String toExternal(Fieldable f) {
+ public String toExternal(IndexableField f) {
return wrappedField.toExternal(f);
}
@@ -118,12 +118,12 @@ public class TrieDateField extends DateF
}
@Override
- public String storedToIndexed(Fieldable f) {
+ public String storedToIndexed(IndexableField f) {
return wrappedField.storedToIndexed(f);
}
@Override
- public Fieldable createField(SchemaField field, Object value, float boost) {
+ public IndexableField createField(SchemaField field, Object value, float boost) {
return wrappedField.createField(field, value, boost);
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/TrieField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/TrieField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/TrieField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/TrieField.java Sat Aug 27 13:27:01 2011
@@ -16,18 +16,16 @@
*/
package org.apache.solr.schema;
-import org.apache.lucene.document.Fieldable;
-import org.apache.lucene.document.Field;
import org.apache.lucene.document.NumericField;
-import org.apache.lucene.index.FieldInfo.IndexOptions;
+import org.apache.lucene.index.IndexableField;
+import org.apache.lucene.search.*;
+import org.apache.lucene.search.cache.CachedArrayCreator;
+import org.apache.lucene.search.cache.DoubleValuesCreator;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.valuesource.DoubleFieldSource;
import org.apache.lucene.queries.function.valuesource.FloatFieldSource;
import org.apache.lucene.queries.function.valuesource.IntFieldSource;
import org.apache.lucene.queries.function.valuesource.LongFieldSource;
-import org.apache.lucene.search.*;
-import org.apache.lucene.search.cache.CachedArrayCreator;
-import org.apache.lucene.search.cache.DoubleValuesCreator;
import org.apache.lucene.search.cache.FloatValuesCreator;
import org.apache.lucene.search.cache.IntValuesCreator;
import org.apache.lucene.search.cache.LongValuesCreator;
@@ -108,26 +106,26 @@ public class TrieField extends FieldType
}
@Override
- public Object toObject(Fieldable f) {
+ public Object toObject(IndexableField f) {
if (f instanceof NumericField) {
- final Number val = ((NumericField) f).getNumericValue();
+ final Number val = ((NumericField) f).numericValue();
if (val==null) return badFieldString(f);
return (type == TrieTypes.DATE) ? new Date(val.longValue()) : val;
} else {
// the following code is "deprecated" and only to support pre-3.2 indexes using the old BinaryField encoding:
- final byte[] arr = f.getBinaryValue();
- if (arr==null) return badFieldString(f);
+ final BytesRef bytes = f.binaryValue();
+ if (bytes==null) return badFieldString(f);
switch (type) {
case INTEGER:
- return toInt(arr);
+ return toInt(bytes.bytes, bytes.offset);
case FLOAT:
- return Float.intBitsToFloat(toInt(arr));
+ return Float.intBitsToFloat(toInt(bytes.bytes, bytes.offset));
case LONG:
- return toLong(arr);
+ return toLong(bytes.bytes, bytes.offset);
case DOUBLE:
- return Double.longBitsToDouble(toLong(arr));
+ return Double.longBitsToDouble(toLong(bytes.bytes, bytes.offset));
case DATE:
- return new Date(toLong(arr));
+ return new Date(toLong(bytes.bytes, bytes.offset));
default:
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Unknown type for trie field: " + f.name());
}
@@ -212,7 +210,7 @@ public class TrieField extends FieldType
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f) throws IOException {
+ public void write(TextResponseWriter writer, String name, IndexableField f) throws IOException {
writer.writeVal(name, toObject(f));
}
@@ -283,19 +281,19 @@ public class TrieField extends FieldType
}
@Deprecated
- static int toInt(byte[] arr) {
- return (arr[0]<<24) | ((arr[1]&0xff)<<16) | ((arr[2]&0xff)<<8) | (arr[3]&0xff);
+ static int toInt(byte[] arr, int offset) {
+ return (arr[offset]<<24) | ((arr[offset+1]&0xff)<<16) | ((arr[offset+2]&0xff)<<8) | (arr[offset+3]&0xff);
}
@Deprecated
- static long toLong(byte[] arr) {
- int high = (arr[0]<<24) | ((arr[1]&0xff)<<16) | ((arr[2]&0xff)<<8) | (arr[3]&0xff);
- int low = (arr[4]<<24) | ((arr[5]&0xff)<<16) | ((arr[6]&0xff)<<8) | (arr[7]&0xff);
+ static long toLong(byte[] arr, int offset) {
+ int high = (arr[offset]<<24) | ((arr[offset+1]&0xff)<<16) | ((arr[offset+2]&0xff)<<8) | (arr[offset+3]&0xff);
+ int low = (arr[offset+4]<<24) | ((arr[offset+5]&0xff)<<16) | ((arr[offset+6]&0xff)<<8) | (arr[offset+7]&0xff);
return (((long)high)<<32) | (low&0x0ffffffffL);
}
@Override
- public String storedToReadable(Fieldable f) {
+ public String storedToReadable(IndexableField f) {
return toExternal(f);
}
@@ -336,14 +334,13 @@ public class TrieField extends FieldType
return readableToIndexed(val);
}
-
- static String badFieldString(Fieldable f) {
+ static String badFieldString(IndexableField f) {
String s = f.stringValue();
return "ERROR:SCHEMA-INDEX-MISMATCH,stringValue="+s;
}
@Override
- public String toExternal(Fieldable f) {
+ public String toExternal(IndexableField f) {
return (type == TrieTypes.DATE)
? dateField.toExternal((Date) toObject(f))
: toObject(f).toString();
@@ -413,10 +410,10 @@ public class TrieField extends FieldType
}
@Override
- public String storedToIndexed(Fieldable f) {
+ public String storedToIndexed(IndexableField f) {
final BytesRef bytes = new BytesRef(NumericUtils.BUF_SIZE_LONG);
- if (f instanceof NumericField) {
- final Number val = ((NumericField) f).getNumericValue();
+ if (f instanceof org.apache.lucene.document.NumericField) {
+ final Number val = ((org.apache.lucene.document.NumericField) f).numericValue();
if (val==null)
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Invalid field contents: "+f.name());
switch (type) {
@@ -438,31 +435,31 @@ public class TrieField extends FieldType
}
} else {
// the following code is "deprecated" and only to support pre-3.2 indexes using the old BinaryField encoding:
- final byte[] arr = f.getBinaryValue();
- if (arr==null)
+ final BytesRef bytesRef = f.binaryValue();
+ if (bytesRef==null)
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Invalid field contents: "+f.name());
switch (type) {
case INTEGER:
- NumericUtils.intToPrefixCoded(toInt(arr), 0, bytes);
+ NumericUtils.intToPrefixCoded(toInt(bytesRef.bytes, bytesRef.offset), 0, bytes);
break;
case FLOAT: {
// WARNING: Code Duplication! Keep in sync with o.a.l.util.NumericUtils!
// copied from NumericUtils to not convert to/from float two times
// code in next 2 lines is identical to: int v = NumericUtils.floatToSortableInt(Float.intBitsToFloat(toInt(arr)));
- int v = toInt(arr);
+ int v = toInt(bytesRef.bytes, bytesRef.offset);
if (v<0) v ^= 0x7fffffff;
NumericUtils.intToPrefixCoded(v, 0, bytes);
break;
}
case LONG: //fallthrough!
case DATE:
- NumericUtils.longToPrefixCoded(toLong(arr), 0, bytes);
+ NumericUtils.longToPrefixCoded(toLong(bytesRef.bytes, bytesRef.offset), 0, bytes);
break;
case DOUBLE: {
// WARNING: Code Duplication! Keep in sync with o.a.l.util.NumericUtils!
// copied from NumericUtils to not convert to/from double two times
// code in next 2 lines is identical to: long v = NumericUtils.doubleToSortableLong(Double.longBitsToDouble(toLong(arr)));
- long v = toLong(arr);
+ long v = toLong(bytesRef.bytes, bytesRef.offset);
if (v<0) v ^= 0x7fffffffffffffffL;
NumericUtils.longToPrefixCoded(v, 0, bytes);
break;
@@ -473,9 +470,9 @@ public class TrieField extends FieldType
}
return bytes.utf8ToString();
}
-
+
@Override
- public Fieldable createField(SchemaField field, Object value, float boost) {
+ public IndexableField createField(SchemaField field, Object value, float boost) {
boolean indexed = field.indexed();
boolean stored = field.stored();
@@ -484,8 +481,15 @@ public class TrieField extends FieldType
log.trace("Ignoring unindexed/unstored field: " + field);
return null;
}
-
- final NumericField f = new NumericField(field.getName(), precisionStep, stored ? Field.Store.YES : Field.Store.NO, indexed);
+
+ org.apache.lucene.document.FieldType ft = new org.apache.lucene.document.FieldType();
+ ft.setStored(stored);
+ ft.setTokenized(true);
+ ft.setIndexed(indexed);
+ ft.setOmitNorms(field.omitNorms());
+ ft.setIndexOptions(getIndexOptions(field, value.toString()));
+
+ final org.apache.lucene.document.NumericField f = new org.apache.lucene.document.NumericField(field.getName(), precisionStep, ft);
switch (type) {
case INTEGER:
int i = (value instanceof Number)
@@ -521,8 +525,6 @@ public class TrieField extends FieldType
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Unknown type for trie field: " + type);
}
- f.setOmitNorms(field.omitNorms());
- f.setIndexOptions(getIndexOptions(field, value.toString()));
f.setBoost(boost);
return f;
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/UUIDField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/UUIDField.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/UUIDField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/UUIDField.java Sat Aug 27 13:27:01 2011
@@ -22,7 +22,7 @@ import java.util.Locale;
import java.util.Map;
import java.util.UUID;
-import org.apache.lucene.document.Fieldable;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.search.SortField;
import org.apache.solr.common.SolrException;
import org.apache.solr.response.TextResponseWriter;
@@ -53,7 +53,7 @@ public class UUIDField extends StrField
}
@Override
- public void write(TextResponseWriter writer, String name, Fieldable f)
+ public void write(TextResponseWriter writer, String name, IndexableField f)
throws IOException {
writer.writeStr(name, f.stringValue(), false);
}
@@ -88,7 +88,7 @@ public class UUIDField extends StrField
}
@Override
- public UUID toObject(Fieldable f) {
+ public UUID toObject(IndexableField f) {
return UUID.fromString(f.stringValue());
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/Grouping.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/Grouping.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/Grouping.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/Grouping.java Sat Aug 27 13:27:01 2011
@@ -18,8 +18,8 @@
package org.apache.solr.search;
import org.apache.commons.lang.ArrayUtils;
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.index.IndexReader.AtomicReaderContext;
+import org.apache.lucene.index.IndexableField;
import org.apache.lucene.queries.function.DocValues;
import org.apache.lucene.queries.function.FunctionQuery;
import org.apache.lucene.queries.function.ValueSource;
@@ -752,7 +752,7 @@ public class Grouping {
SchemaField schemaField = searcher.getSchema().getField(groupBy);
FieldType fieldType = schemaField.getType();
String readableValue = fieldType.indexedToReadable(group.groupValue.utf8ToString());
- Fieldable field = schemaField.createField(readableValue, 0.0f);
+ IndexableField field = schemaField.createField(readableValue, 0.0f);
nl.add("groupValue", fieldType.toObject(field));
} else {
nl.add("groupValue", null);
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java Sat Aug 27 13:27:01 2011
@@ -34,12 +34,14 @@ import java.util.concurrent.atomic.Atomi
import org.apache.lucene.document.Document;
import org.apache.lucene.document.FieldSelector;
import org.apache.lucene.document.FieldSelectorResult;
+import org.apache.lucene.document.FieldSelectorVisitor;
import org.apache.lucene.index.DocsEnum;
import org.apache.lucene.index.Fields;
-import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexReader.AtomicReaderContext;
+import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.MultiDocsEnum;
import org.apache.lucene.index.MultiFields;
+import org.apache.lucene.index.StoredFieldVisitor;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
@@ -435,13 +437,13 @@ public class SolrIndexSearcher extends I
return doc(i, (Set<String>)null);
}
- /** Retrieve a {@link Document} using a {@link org.apache.lucene.document.FieldSelector}
- * This method does not currently use the Solr document cache.
+ /** Visit a document's fields using a {@link StoredFieldVisitor}
+ * This method does not currently use the Solr document cache.
*
- * @see IndexReader#document(int, FieldSelector) */
+ * @see IndexReader#document(int, StoredFieldVisitor) */
@Override
- public Document doc(int n, FieldSelector fieldSelector) throws IOException {
- return getIndexReader().document(n, fieldSelector);
+ public void doc(int n, StoredFieldVisitor visitor) throws IOException {
+ getIndexReader().document(n, visitor);
}
/**
@@ -462,8 +464,9 @@ public class SolrIndexSearcher extends I
if(!enableLazyFieldLoading || fields == null) {
d = getIndexReader().document(i);
} else {
- d = getIndexReader().document(i,
- new SetNonLazyFieldSelector(fields));
+ final FieldSelectorVisitor visitor = new FieldSelectorVisitor(new SetNonLazyFieldSelector(fields));
+ getIndexReader().document(i, visitor);
+ d = visitor.getDocument();
}
if (documentCache != null) {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java Sat Aug 27 13:27:01 2011
@@ -25,7 +25,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
+import org.apache.lucene.document.TextField;
import org.apache.lucene.search.spell.HighFrequencyDictionary;
import org.apache.lucene.search.spell.PlainTextDictionary;
import org.apache.lucene.store.RAMDirectory;
@@ -100,7 +100,7 @@ public class FileBasedSpellChecker exten
for (String s : lines) {
Document d = new Document();
- d.add(new Field(WORD_FIELD_NAME, s, Field.Store.NO, Field.Index.ANALYZED));
+ d.add(new TextField(WORD_FIELD_NAME, s));
writer.addDocument(d);
}
writer.optimize();
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java?rev=1162347&r1=1162346&r2=1162347&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java Sat Aug 27 13:27:01 2011
@@ -18,7 +18,6 @@
package org.apache.solr.update;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Fieldable;
import org.apache.lucene.index.Term;
import org.apache.lucene.util.BytesRef;
import org.apache.solr.common.SolrException;