You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2014/08/12 16:46:49 UTC
svn commit: r1617493 [8/8] - in /lucene/dev/trunk: lucene/
lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/
lucene/analysis/common/src/java/org/apache/lucene/analysis/hunspell/
lucene/analysis/common/src/java/org/apache/lucene/ana...
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/TermsComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/TermsComponent.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/TermsComponent.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/TermsComponent.java Tue Aug 12 14:46:45 2014
@@ -18,7 +18,9 @@ package org.apache.solr.handler.componen
import org.apache.lucene.index.*;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.lucene.util.StringHelper;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.*;
@@ -29,7 +31,6 @@ import org.apache.solr.schema.FieldType;
import org.apache.solr.schema.StrField;
import org.apache.solr.request.SimpleFacets.CountPair;
import org.apache.solr.util.BoundedTreeSet;
-
import org.apache.solr.client.solrj.response.TermsResponse;
import java.io.IOException;
@@ -138,8 +139,9 @@ public class TermsComponent extends Sear
BytesRef upperBytes = null;
if (upperStr != null) {
- upperBytes = new BytesRef();
- ft.readableToIndexed(upperStr, upperBytes);
+ BytesRefBuilder b = new BytesRefBuilder();
+ ft.readableToIndexed(upperStr, b);
+ upperBytes = b.get();
}
BytesRef lowerBytes;
@@ -153,8 +155,9 @@ public class TermsComponent extends Sear
// perhaps we detect if the FieldType is non-character and expect hex if so?
lowerBytes = new BytesRef(lowerStr);
} else {
- lowerBytes = new BytesRef();
- ft.readableToIndexed(lowerStr, lowerBytes);
+ BytesRefBuilder b = new BytesRefBuilder();
+ ft.readableToIndexed(lowerStr, b);
+ lowerBytes = b.get();
}
}
@@ -179,7 +182,7 @@ public class TermsComponent extends Sear
int i = 0;
BoundedTreeSet<CountPair<BytesRef, Integer>> queue = (sort ? new BoundedTreeSet<CountPair<BytesRef, Integer>>(limit) : null);
- CharsRef external = new CharsRef();
+ CharsRefBuilder external = new CharsRefBuilder();
while (term != null && (i<limit || sort)) {
boolean externalized = false; // did we fill in "external" yet for this term?
@@ -191,7 +194,7 @@ public class TermsComponent extends Sear
// TODO: support "raw" mode?
ft.indexedToReadable(term, external);
externalized = true;
- if (!pattern.matcher(external).matches()) {
+ if (!pattern.matcher(external.get()).matches()) {
term = termsEnum.next();
continue;
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/DocValuesFacets.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/DocValuesFacets.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/DocValuesFacets.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/DocValuesFacets.java Tue Aug 12 14:46:45 2014
@@ -31,7 +31,9 @@ import org.apache.lucene.search.DocIdSet
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.Filter;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.lucene.util.LongValues;
import org.apache.lucene.util.UnicodeUtil;
import org.apache.solr.common.params.FacetParams;
@@ -86,22 +88,23 @@ public class DocValuesFacets {
throw new UnsupportedOperationException("Currently this faceting method is limited to " + Integer.MAX_VALUE + " unique terms");
}
- final BytesRef prefixRef;
+ final BytesRefBuilder prefixRef;
if (prefix == null) {
prefixRef = null;
} else if (prefix.length()==0) {
prefix = null;
prefixRef = null;
} else {
- prefixRef = new BytesRef(prefix);
+ prefixRef = new BytesRefBuilder();
+ prefixRef.copyChars(prefix);
}
int startTermIndex, endTermIndex;
if (prefix!=null) {
- startTermIndex = (int) si.lookupTerm(prefixRef);
+ startTermIndex = (int) si.lookupTerm(prefixRef.get());
if (startTermIndex<0) startTermIndex=-startTermIndex-1;
prefixRef.append(UnicodeUtil.BIG_TERM);
- endTermIndex = (int) si.lookupTerm(prefixRef);
+ endTermIndex = (int) si.lookupTerm(prefixRef.get());
assert endTermIndex < 0;
endTermIndex = -endTermIndex-1;
} else {
@@ -111,7 +114,7 @@ public class DocValuesFacets {
final int nTerms=endTermIndex-startTermIndex;
int missingCount = -1;
- final CharsRef charsRef = new CharsRef(10);
+ final CharsRefBuilder charsRef = new CharsRefBuilder();
if (nTerms>0 && docs.size() >= mincount) {
// count collection array only needs to be as big as the number of terms we are
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/NumericFacets.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/NumericFacets.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/NumericFacets.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/NumericFacets.java Tue Aug 12 14:46:45 2014
@@ -40,6 +40,7 @@ import org.apache.lucene.queries.functio
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.lucene.util.PriorityQueue;
import org.apache.lucene.util.StringHelper;
import org.apache.solr.common.params.FacetParams;
@@ -290,7 +291,7 @@ final class NumericFacets {
default:
throw new AssertionError();
}
- final CharsRef spare = new CharsRef();
+ final CharsRefBuilder spare = new CharsRefBuilder();
for (int skipped = hashTable.size; skipped < offset && term != null && StringHelper.startsWith(term, prefix); ) {
ft.indexedToReadable(term, spare);
final String termStr = spare.toString();
@@ -343,7 +344,7 @@ final class NumericFacets {
default:
throw new AssertionError();
}
- final CharsRef spare = new CharsRef();
+ final CharsRefBuilder spare = new CharsRefBuilder();
for (int i = 0; i < offset && term != null && StringHelper.startsWith(term, prefix); ++i) {
term = termsEnum.next();
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java Tue Aug 12 14:46:45 2014
@@ -29,7 +29,9 @@ import org.apache.lucene.search.DocIdSet
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.Filter;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.lucene.util.PriorityQueue;
import org.apache.lucene.util.UnicodeUtil;
import org.apache.lucene.util.packed.PackedInts;
@@ -169,7 +171,7 @@ class PerSegmentSingleValuedFaceting {
collector = new IndexSortedFacetCollector(offset, limit, mincount);
}
- BytesRef val = new BytesRef();
+ BytesRefBuilder val = new BytesRefBuilder();
while (queue.size() > 0) {
SegFacet seg = queue.top();
@@ -194,9 +196,9 @@ class PerSegmentSingleValuedFaceting {
seg.tempBR = seg.tenum.next();
seg = queue.updateTop();
}
- } while (seg != null && val.compareTo(seg.tempBR) == 0);
+ } while (seg != null && val.get().compareTo(seg.tempBR) == 0);
- boolean stop = collector.collect(val, count);
+ boolean stop = collector.collect(val.get(), count);
if (stop) break;
}
@@ -240,12 +242,13 @@ class PerSegmentSingleValuedFaceting {
// SolrCore.log.info("reader= " + reader + " FC=" + System.identityHashCode(si));
if (prefix!=null) {
- BytesRef prefixRef = new BytesRef(prefix);
- startTermIndex = si.lookupTerm(prefixRef);
+ BytesRefBuilder prefixRef = new BytesRefBuilder();
+ prefixRef.copyChars(prefix);
+ startTermIndex = si.lookupTerm(prefixRef.get());
if (startTermIndex<0) startTermIndex=-startTermIndex-1;
prefixRef.append(UnicodeUtil.BIG_TERM);
// TODO: we could constrain the lower endpoint if we had a binarySearch method that allowed passing start/end
- endTermIndex = si.lookupTerm(prefixRef);
+ endTermIndex = si.lookupTerm(prefixRef.get());
assert endTermIndex < 0;
endTermIndex = -endTermIndex-1;
} else {
@@ -295,7 +298,7 @@ abstract class FacetCollector {
// This collector expects facets to be collected in index order
class CountSortedFacetCollector extends FacetCollector {
- private final CharsRef spare = new CharsRef();
+ private final CharsRefBuilder spare = new CharsRefBuilder();
final int offset;
final int limit;
@@ -318,7 +321,7 @@ class CountSortedFacetCollector extends
// NOTE: we use c>min rather than c>=min as an optimization because we are going in
// index order, so we already know that the keys are ordered. This can be very
// important if a lot of the counts are repeated (like zero counts would be).
- UnicodeUtil.UTF8toUTF16(term, spare);
+ spare.copyUTF8Bytes(term);
queue.add(new SimpleFacets.CountPair<>(spare.toString(), count));
if (queue.size()>=maxsize) min=queue.last().val;
}
@@ -342,7 +345,7 @@ class CountSortedFacetCollector extends
// This collector expects facets to be collected in index order
class IndexSortedFacetCollector extends FacetCollector {
- private final CharsRef spare = new CharsRef();
+ private final CharsRefBuilder spare = new CharsRefBuilder();
int offset;
int limit;
@@ -367,7 +370,7 @@ class IndexSortedFacetCollector extends
}
if (limit > 0) {
- UnicodeUtil.UTF8toUTF16(term, spare);
+ spare.copyUTF8Bytes(term);
res.add(spare.toString(), count);
limit--;
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/SimpleFacets.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/SimpleFacets.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/SimpleFacets.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/SimpleFacets.java Tue Aug 12 14:46:45 2014
@@ -58,6 +58,7 @@ import org.apache.lucene.search.grouping
import org.apache.lucene.search.grouping.term.TermGroupFacetCollector;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.lucene.util.StringHelper;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
@@ -480,7 +481,7 @@ public class SimpleFacets {
(offset + limit),
mincount, orderByCount);
- CharsRef charsRef = new CharsRef();
+ CharsRefBuilder charsRef = new CharsRefBuilder();
FieldType facetFieldType = searcher.getSchema().getFieldType(field);
NamedList<Integer> facetCounts = new NamedList<>();
List<TermGroupFacetCollector.FacetEntry> scopedEntries
@@ -699,7 +700,7 @@ public class SimpleFacets {
}
DocsEnum docsEnum = null;
- CharsRef charsRef = new CharsRef(10);
+ CharsRefBuilder charsRef = new CharsRefBuilder();
if (docs.size() >= mincount) {
while (term != null) {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/UnInvertedField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/UnInvertedField.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/UnInvertedField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/request/UnInvertedField.java Tue Aug 12 14:46:45 2014
@@ -30,7 +30,9 @@ import org.apache.lucene.search.TermQuer
import org.apache.lucene.search.TermRangeQuery;
import org.apache.lucene.uninverting.DocTermOrds;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.lucene.util.FixedBitSet;
import org.apache.lucene.util.UnicodeUtil;
import org.apache.solr.common.SolrException;
@@ -239,14 +241,15 @@ public class UnInvertedField extends Doc
TermsEnum te = getOrdTermsEnum(searcher.getAtomicReader());
if (te != null && prefix != null && prefix.length() > 0) {
- final BytesRef prefixBr = new BytesRef(prefix);
- if (te.seekCeil(prefixBr) == TermsEnum.SeekStatus.END) {
+ final BytesRefBuilder prefixBr = new BytesRefBuilder();
+ prefixBr.copyChars(prefix);
+ if (te.seekCeil(prefixBr.get()) == TermsEnum.SeekStatus.END) {
startTerm = numTermsInField;
} else {
startTerm = (int) te.ord();
}
prefixBr.append(UnicodeUtil.BIG_TERM);
- if (te.seekCeil(prefixBr) == TermsEnum.SeekStatus.END) {
+ if (te.seekCeil(prefixBr.get()) == TermsEnum.SeekStatus.END) {
endTerm = numTermsInField;
} else {
endTerm = (int) te.ord();
@@ -343,7 +346,7 @@ public class UnInvertedField extends Doc
}
}
}
- final CharsRef charsRef = new CharsRef();
+ final CharsRefBuilder charsRef = new CharsRefBuilder();
int off=offset;
int lim=limit>=0 ? limit : Integer.MAX_VALUE;
@@ -623,7 +626,7 @@ public class UnInvertedField extends Doc
}
- String getReadableValue(BytesRef termval, FieldType ft, CharsRef charsRef) {
+ String getReadableValue(BytesRef termval, FieldType ft, CharsRefBuilder charsRef) {
return ft.indexedToReadable(termval, charsRef).toString();
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/PHPSerializedResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/PHPSerializedResponseWriter.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/PHPSerializedResponseWriter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/PHPSerializedResponseWriter.java Tue Aug 12 14:46:45 2014
@@ -24,6 +24,7 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashMap;
+import org.apache.lucene.util.ArrayUtil;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.UnicodeUtil;
import org.apache.solr.common.SolrDocument;
@@ -68,11 +69,11 @@ public class PHPSerializedResponseWriter
}
class PHPSerializedWriter extends JSONWriter {
- final BytesRef utf8;
+ byte[] utf8;
public PHPSerializedWriter(Writer writer, SolrQueryRequest req, SolrQueryResponse rsp) {
super(writer, req, rsp);
- this.utf8 = new BytesRef();
+ this.utf8 = BytesRef.EMPTY_BYTES;
// never indent serialized PHP data
doIndent = false;
}
@@ -267,8 +268,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.
- UnicodeUtil.UTF16toUTF8(val, 0, val.length(), utf8);
- int nBytes = utf8.length;
+ utf8 = ArrayUtil.grow(utf8, val.length() * UnicodeUtil.MAX_UTF8_BYTES_PER_CHAR);
+ final int nBytes = UnicodeUtil.UTF16toUTF8(val, 0, val.length(), utf8);
writer.write("s:");
writer.write(Integer.toString(nBytes));
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=1617493&r1=1617492&r2=1617493&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 Tue Aug 12 14:46:45 2014
@@ -36,6 +36,7 @@ import org.apache.lucene.search.SortFiel
import org.apache.lucene.uninverting.UninvertingReader.Type;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.lucene.util.mutable.MutableValue;
import org.apache.lucene.util.mutable.MutableValueBool;
import org.apache.solr.analysis.SolrAnalyzer;
@@ -148,13 +149,13 @@ public class BoolField extends Primitive
private static final CharsRef FALSE = new CharsRef("false");
@Override
- public CharsRef indexedToReadable(BytesRef input, CharsRef charsRef) {
+ public CharsRef indexedToReadable(BytesRef input, CharsRefBuilder charsRef) {
if (input.length > 0 && input.bytes[input.offset] == 'T') {
charsRef.copyChars(TRUE);
} else {
charsRef.copyChars(FALSE);
}
- return charsRef;
+ return charsRef.get();
}
@Override
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/EnumField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/EnumField.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/EnumField.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/schema/EnumField.java Tue Aug 12 14:46:45 2014
@@ -24,7 +24,9 @@ import org.apache.lucene.queries.functio
import org.apache.lucene.search.*;
import org.apache.lucene.uninverting.UninvertingReader.Type;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.lucene.util.NumericUtils;
import org.apache.solr.common.EnumFieldValue;
import org.apache.solr.common.SolrException;
@@ -43,9 +45,9 @@ import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
+
import java.io.IOException;
import java.io.InputStream;
-
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
@@ -272,16 +274,16 @@ public class EnumField extends Primitive
if (val == null)
return null;
- final BytesRef bytes = new BytesRef(NumericUtils.BUF_SIZE_LONG);
+ final BytesRefBuilder bytes = new BytesRefBuilder();
readableToIndexed(val, bytes);
- return bytes.utf8ToString();
+ return bytes.get().utf8ToString();
}
/**
* {@inheritDoc}
*/
@Override
- public void readableToIndexed(CharSequence val, BytesRef result) {
+ public void readableToIndexed(CharSequence val, BytesRefBuilder result) {
final String s = val.toString();
if (s == null)
return;
@@ -326,13 +328,13 @@ public class EnumField extends Primitive
* {@inheritDoc}
*/
@Override
- public CharsRef indexedToReadable(BytesRef input, CharsRef output) {
+ public CharsRef indexedToReadable(BytesRef input, CharsRefBuilder output) {
final Integer intValue = NumericUtils.prefixCodedToInt(input);
final String stringValue = intValueToStringValue(intValue);
output.grow(stringValue.length());
- output.length = stringValue.length();
- stringValue.getChars(0, output.length, output.chars, 0);
- return output;
+ output.setLength(stringValue.length());
+ stringValue.getChars(0, output.length(), output.chars(), 0);
+ return output.get();
}
/**
@@ -353,9 +355,9 @@ public class EnumField extends Primitive
final Number val = f.numericValue();
if (val == null)
return null;
- final BytesRef bytes = new BytesRef(NumericUtils.BUF_SIZE_LONG);
+ final BytesRefBuilder bytes = new BytesRefBuilder();
NumericUtils.intToPrefixCoded(val.intValue(), 0, bytes);
- return bytes.utf8ToString();
+ return bytes.get().utf8ToString();
}
/**
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=1617493&r1=1617492&r2=1617493&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 Tue Aug 12 14:46:45 2014
@@ -43,7 +43,9 @@ import org.apache.lucene.search.TermRang
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.uninverting.UninvertingReader;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.lucene.util.UnicodeUtil;
import org.apache.solr.analysis.SolrAnalyzer;
import org.apache.solr.analysis.TokenizerChain;
@@ -358,7 +360,7 @@ public abstract class FieldType extends
}
public Object toObject(SchemaField sf, BytesRef term) {
- final CharsRef ref = new CharsRef(term.length);
+ final CharsRefBuilder ref = new CharsRefBuilder();
indexedToReadable(term, ref);
final StorableField f = createField(sf, ref.toString(), 1.0f);
return toObject(f);
@@ -370,9 +372,9 @@ public abstract class FieldType extends
}
/** Given an indexed term, append the human readable representation*/
- public CharsRef indexedToReadable(BytesRef input, CharsRef output) {
- UnicodeUtil.UTF8toUTF16(input, output);
- return output;
+ public CharsRef indexedToReadable(BytesRef input, CharsRefBuilder output) {
+ output.copyUTF8Bytes(input);
+ return output.get();
}
/** Given the stored field, return the human readable representation */
@@ -394,9 +396,9 @@ public abstract class FieldType extends
}
/** Given the readable value, return the term value that will match it. */
- public void readableToIndexed(CharSequence val, BytesRef result) {
+ public void readableToIndexed(CharSequence val, BytesRefBuilder result) {
final String internal = readableToIndexed(val.toString());
- UnicodeUtil.UTF16toUTF8(internal, 0, internal.length(), result);
+ result.copyChars(internal);
}
public void setIsExplicitQueryAnalyzer(boolean isExplicitQueryAnalyzer) {
@@ -724,13 +726,13 @@ public abstract class FieldType extends
*
*/
public Query getFieldQuery(QParser parser, SchemaField field, String externalVal) {
- BytesRef br = new BytesRef();
+ BytesRefBuilder br = new BytesRefBuilder();
readableToIndexed(externalVal, br);
if (field.hasDocValues() && !field.indexed()) {
// match-only
return getRangeQuery(parser, field, externalVal, externalVal, true, true);
} else {
- return new TermQuery(new Term(field.getName(), br));
+ return new TermQuery(new Term(field.getName(), br.toBytesRef()));
}
}
@@ -986,8 +988,8 @@ public abstract class FieldType extends
if (null == value) {
return null;
}
- CharsRef spare = new CharsRef();
- UnicodeUtil.UTF8toUTF16((BytesRef)value, spare);
+ CharsRefBuilder spare = new CharsRefBuilder();
+ spare.copyUTF8Bytes((BytesRef)value);
return spare.toString();
}
@@ -998,10 +1000,10 @@ public abstract class FieldType extends
if (null == value) {
return null;
}
- BytesRef spare = new BytesRef();
+ BytesRefBuilder spare = new BytesRefBuilder();
String stringVal = (String)value;
- UnicodeUtil.UTF16toUTF8(stringVal, 0, stringVal.length(), spare);
- return spare;
+ spare.copyChars(stringVal);
+ return spare.get();
}
/**
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=1617493&r1=1617492&r2=1617493&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 Tue Aug 12 14:46:45 2014
@@ -45,7 +45,9 @@ import org.apache.lucene.search.Query;
import org.apache.lucene.search.SortField;
import org.apache.lucene.uninverting.UninvertingReader.Type;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.lucene.util.NumericUtils;
import org.apache.lucene.util.mutable.MutableValueDate;
import org.apache.lucene.util.mutable.MutableValueLong;
@@ -407,13 +409,13 @@ public class TrieField extends Primitive
@Override
public String readableToIndexed(String val) {
// TODO: Numeric should never be handled as String, that may break in future lucene versions! Change to use BytesRef for term texts!
- final BytesRef bytes = new BytesRef(NumericUtils.BUF_SIZE_LONG);
+ final BytesRefBuilder bytes = new BytesRefBuilder();
readableToIndexed(val, bytes);
- return bytes.utf8ToString();
+ return bytes.get().utf8ToString();
}
@Override
- public void readableToIndexed(CharSequence val, BytesRef result) {
+ public void readableToIndexed(CharSequence val, BytesRefBuilder result) {
String s = val.toString();
try {
switch (type) {
@@ -478,7 +480,7 @@ public class TrieField extends Primitive
}
@Override
- public CharsRef indexedToReadable(BytesRef indexedForm, CharsRef charsRef) {
+ public CharsRef indexedToReadable(BytesRef indexedForm, CharsRefBuilder charsRef) {
final String value;
switch (type) {
case INTEGER:
@@ -500,9 +502,9 @@ public class TrieField extends Primitive
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Unknown type for trie field: " + type);
}
charsRef.grow(value.length());
- charsRef.length = value.length();
- value.getChars(0, charsRef.length, charsRef.chars, 0);
- return charsRef;
+ charsRef.setLength(value.length());
+ value.getChars(0, charsRef.length(), charsRef.chars(), 0);
+ return charsRef.get();
}
@Override
@@ -525,7 +527,7 @@ public class TrieField extends Primitive
@Override
public String storedToIndexed(StorableField f) {
- final BytesRef bytes = new BytesRef(NumericUtils.BUF_SIZE_LONG);
+ final BytesRefBuilder bytes = new BytesRefBuilder();
final Number val = f.numericValue();
if (val != null) {
switch (type) {
@@ -580,7 +582,7 @@ public class TrieField extends Primitive
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Unknown type for trie field: " + f.name());
}
}
- return bytes.utf8ToString();
+ return bytes.get().utf8ToString();
}
@Override
@@ -672,9 +674,9 @@ public class TrieField extends Primitive
fields.add(field);
if (sf.multiValued()) {
- BytesRef bytes = new BytesRef();
+ BytesRefBuilder bytes = new BytesRefBuilder();
readableToIndexed(value.toString(), bytes);
- fields.add(new SortedSetDocValuesField(sf.getName(), bytes));
+ fields.add(new SortedSetDocValuesField(sf.getName(), bytes.get()));
} else {
final long bits;
if (field.numericValue() instanceof Integer || field.numericValue() instanceof Long) {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/CursorMark.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/CursorMark.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/CursorMark.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/CursorMark.java Tue Aug 12 14:46:45 2014
@@ -26,9 +26,12 @@ import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.Query;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
+
import static org.apache.solr.common.params.CursorMarkParams.*;
+
import org.apache.solr.common.util.Base64;
import org.apache.solr.common.util.JavaBinCodec;
import org.apache.solr.schema.IndexSchema;
@@ -200,6 +203,16 @@ public final class CursorMark {
ByteArrayInputStream in = new ByteArrayInputStream(rawData);
try {
pieces = (List<Object>) codec.unmarshal(in);
+ boolean b = false;
+ for (Object o : pieces) {
+ if (o instanceof BytesRefBuilder || o instanceof BytesRef || o instanceof String) {
+ b = true; break;
+ }
+ }
+ if (b) {
+ in.reset();
+ pieces = (List<Object>) codec.unmarshal(in);
+ }
} finally {
in.close();
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/QueryParsing.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/QueryParsing.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/QueryParsing.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/QueryParsing.java Tue Aug 12 14:46:45 2014
@@ -34,6 +34,7 @@ import org.apache.lucene.search.TermRang
import org.apache.lucene.search.WildcardQuery;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.MapSolrParams;
import org.apache.solr.common.params.SolrParams;
@@ -42,6 +43,7 @@ import org.apache.solr.request.SolrQuery
import org.apache.solr.schema.FieldType;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.SchemaField;
+
import java.io.IOException;
import java.util.Collections;
import java.util.ArrayList;
@@ -421,9 +423,9 @@ public class QueryParsing {
static void writeFieldVal(BytesRef val, FieldType ft, Appendable out, int flags) throws IOException {
if (ft != null) {
try {
- CharsRef readable = new CharsRef();
+ CharsRefBuilder readable = new CharsRefBuilder();
ft.indexedToReadable(val, readable);
- out.append(readable);
+ out.append(readable.get());
} catch (Exception e) {
out.append("EXCEPTION(val=");
out.append(val.utf8ToString());
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/TermQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/TermQParserPlugin.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/TermQParserPlugin.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/TermQParserPlugin.java Tue Aug 12 14:46:45 2014
@@ -19,7 +19,7 @@ package org.apache.solr.search;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.request.SolrQueryRequest;
@@ -55,13 +55,13 @@ public class TermQParserPlugin extends Q
String fname = localParams.get(QueryParsing.F);
FieldType ft = req.getSchema().getFieldTypeNoEx(fname);
String val = localParams.get(QueryParsing.V);
- BytesRef term = new BytesRef();
+ BytesRefBuilder term = new BytesRefBuilder();
if (ft != null) {
ft.readableToIndexed(val, term);
} else {
term.copyChars(val);
}
- return new TermQuery(new Term(fname, term));
+ return new TermQuery(new Term(fname, term.get()));
}
};
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java Tue Aug 12 14:46:45 2014
@@ -29,6 +29,7 @@ import org.apache.lucene.search.Query;
import org.apache.lucene.search.QueryWrapperFilter;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.automaton.Automata;
import org.apache.lucene.util.automaton.Automaton;
import org.apache.solr.common.params.SolrParams;
@@ -121,16 +122,16 @@ public class TermsQParserPlugin extends
assert splitVals.length > 0;
BytesRef[] bytesRefs = new BytesRef[splitVals.length];
+ BytesRefBuilder term = new BytesRefBuilder();
for (int i = 0; i < splitVals.length; i++) {
String stringVal = splitVals[i];
//logic same as TermQParserPlugin
- BytesRef term = new BytesRef();
if (ft != null) {
ft.readableToIndexed(stringVal, term);
} else {
term.copyChars(stringVal);
}
- bytesRefs[i] = term;
+ bytesRefs[i] = term.toBytesRef();
}
return new SolrConstantScoreQuery(method.makeFilter(fname, bytesRefs));
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java Tue Aug 12 14:46:45 2014
@@ -17,6 +17,7 @@
package org.apache.solr.search;
import com.spatial4j.core.distance.DistanceUtils;
+
import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.Term;
import org.apache.lucene.queries.function.BoostedQuery;
@@ -35,12 +36,12 @@ import org.apache.lucene.search.spell.Le
import org.apache.lucene.search.spell.NGramDistance;
import org.apache.lucene.search.spell.StringDistance;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.UnicodeUtil;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.request.SolrRequestInfo;
import org.apache.solr.schema.*;
-
import org.apache.solr.search.function.CollapseScoreFunction;
import org.apache.solr.search.function.OrdFieldSource;
import org.apache.solr.search.function.ReverseOrdFieldSource;
@@ -593,7 +594,7 @@ public abstract class ValueSourceParser
@Override
public ValueSource parse(FunctionQParser fp) throws SyntaxError {
TInfo tinfo = parseTerm(fp);
- return new DocFreqValueSource(tinfo.field, tinfo.val, tinfo.indexedField, tinfo.indexedBytes);
+ return new DocFreqValueSource(tinfo.field, tinfo.val, tinfo.indexedField, tinfo.indexedBytes.get());
}
});
@@ -601,7 +602,7 @@ public abstract class ValueSourceParser
@Override
public ValueSource parse(FunctionQParser fp) throws SyntaxError {
TInfo tinfo = parseTerm(fp);
- return new TotalTermFreqValueSource(tinfo.field, tinfo.val, tinfo.indexedField, tinfo.indexedBytes);
+ return new TotalTermFreqValueSource(tinfo.field, tinfo.val, tinfo.indexedField, tinfo.indexedBytes.get());
}
});
alias("totaltermfreq","ttf");
@@ -619,7 +620,7 @@ public abstract class ValueSourceParser
@Override
public ValueSource parse(FunctionQParser fp) throws SyntaxError {
TInfo tinfo = parseTerm(fp);
- return new IDFValueSource(tinfo.field, tinfo.val, tinfo.indexedField, tinfo.indexedBytes);
+ return new IDFValueSource(tinfo.field, tinfo.val, tinfo.indexedField, tinfo.indexedBytes.get());
}
});
@@ -627,7 +628,7 @@ public abstract class ValueSourceParser
@Override
public ValueSource parse(FunctionQParser fp) throws SyntaxError {
TInfo tinfo = parseTerm(fp);
- return new TermFreqValueSource(tinfo.field, tinfo.val, tinfo.indexedField, tinfo.indexedBytes);
+ return new TermFreqValueSource(tinfo.field, tinfo.val, tinfo.indexedField, tinfo.indexedBytes.get());
}
});
@@ -635,7 +636,7 @@ public abstract class ValueSourceParser
@Override
public ValueSource parse(FunctionQParser fp) throws SyntaxError {
TInfo tinfo = parseTerm(fp);
- return new TFValueSource(tinfo.field, tinfo.val, tinfo.indexedField, tinfo.indexedBytes);
+ return new TFValueSource(tinfo.field, tinfo.val, tinfo.indexedField, tinfo.indexedBytes.get());
}
});
@@ -795,7 +796,7 @@ public abstract class ValueSourceParser
tinfo.indexedField = tinfo.field = fp.parseArg();
tinfo.val = fp.parseArg();
- tinfo.indexedBytes = new BytesRef();
+ tinfo.indexedBytes = new BytesRefBuilder();
FieldType ft = fp.getReq().getSchema().getFieldTypeNoEx(tinfo.field);
if (ft == null) ft = new StrField();
@@ -809,7 +810,7 @@ public abstract class ValueSourceParser
tinfo.indexedField = term.field();
indexedVal = term.text();
}
- UnicodeUtil.UTF16toUTF8(indexedVal, 0, indexedVal.length(), tinfo.indexedBytes);
+ tinfo.indexedBytes.copyChars(indexedVal);
} else {
ft.readableToIndexed(tinfo.val, tinfo.indexedBytes);
}
@@ -871,7 +872,7 @@ public abstract class ValueSourceParser
String field;
String val;
String indexedField;
- BytesRef indexedBytes;
+ BytesRefBuilder indexedBytes;
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java Tue Aug 12 14:46:45 2014
@@ -22,6 +22,7 @@ import org.apache.lucene.queries.functio
import org.apache.lucene.queries.function.docvalues.FloatDocValues;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.solr.core.SolrCore;
import org.apache.solr.handler.RequestHandlerBase;
import org.apache.solr.handler.RequestHandlerUtils;
@@ -267,7 +268,7 @@ public class FileFloatSource extends Val
char delimiter='=';
- BytesRef internalKey = new BytesRef();
+ BytesRefBuilder internalKey = new BytesRefBuilder();
try {
TermsEnum termsEnum = MultiFields.getTerms(reader, idName).iterator(null);
@@ -297,7 +298,7 @@ public class FileFloatSource extends Val
continue; // go to next line in file.. leave values as default.
}
- if (!termsEnum.seekExact(internalKey)) {
+ if (!termsEnum.seekExact(internalKey.get())) {
if (notFoundCount<10) { // collect first 10 not found for logging
notFound.add(key);
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/GroupConverter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/GroupConverter.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/GroupConverter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/GroupConverter.java Tue Aug 12 14:46:45 2014
@@ -26,6 +26,7 @@ import org.apache.lucene.search.grouping
import org.apache.lucene.search.grouping.SearchGroup;
import org.apache.lucene.search.grouping.TopGroups;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.mutable.MutableValue;
import org.apache.lucene.util.mutable.MutableValueDate;
import org.apache.lucene.util.mutable.MutableValueDouble;
@@ -53,9 +54,9 @@ class GroupConverter {
SearchGroup<BytesRef> converted = new SearchGroup<BytesRef>();
converted.sortValues = original.sortValues;
if (original.groupValue.exists) {
- BytesRef binary = new BytesRef();
+ BytesRefBuilder binary = new BytesRefBuilder();
fieldType.readableToIndexed(original.groupValue.toString(), binary);
- converted.groupValue = binary;
+ converted.groupValue = binary.get();
} else {
converted.groupValue = null;
}
@@ -146,9 +147,9 @@ class GroupConverter {
GroupDocs<MutableValue> original = values.groups[i];
final BytesRef groupValue;
if (original.groupValue.exists) {
- BytesRef binary = new BytesRef();
+ BytesRefBuilder binary = new BytesRefBuilder();
fieldType.readableToIndexed(original.groupValue.toString(), binary);
- groupValue = binary;
+ groupValue = binary.get();
} else {
groupValue = null;
}
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=1617493&r1=1617492&r2=1617493&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 Tue Aug 12 14:46:45 2014
@@ -25,6 +25,7 @@ import org.apache.lucene.document.Docume
import org.apache.lucene.index.IndexDocument;
import org.apache.lucene.index.Term;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.SolrInputField;
@@ -95,8 +96,9 @@ public class AddUpdateCommand extends Up
} else if (count > 1) {
throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"Document contains multiple values for uniqueKey field: " + field);
} else {
- indexedId = new BytesRef();
- sf.getType().readableToIndexed(field.getFirstValue().toString(), indexedId);
+ BytesRefBuilder b = new BytesRefBuilder();
+ sf.getType().readableToIndexed(field.getFirstValue().toString(), b);
+ indexedId = b.get();
}
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DeleteUpdateCommand.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DeleteUpdateCommand.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DeleteUpdateCommand.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DeleteUpdateCommand.java Tue Aug 12 14:46:45 2014
@@ -18,7 +18,9 @@
package org.apache.solr.update;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.solr.common.SolrInputField;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.schema.IndexSchema;
@@ -60,8 +62,9 @@ public class DeleteUpdateCommand extends
IndexSchema schema = req.getSchema();
SchemaField sf = schema.getUniqueKeyField();
if (sf != null && id != null) {
- indexedId = new BytesRef();
- sf.getType().readableToIndexed(id, indexedId);
+ BytesRefBuilder b = new BytesRefBuilder();
+ sf.getType().readableToIndexed(id, b);
+ indexedId = b.get();
}
}
return indexedId;
@@ -72,7 +75,7 @@ public class DeleteUpdateCommand extends
IndexSchema schema = req.getSchema();
SchemaField sf = schema.getUniqueKeyField();
if (sf != null) {
- CharsRef ref = new CharsRef();
+ CharsRefBuilder ref = new CharsRefBuilder();
sf.getType().indexedToReadable(indexedId, ref);
id = ref.toString();
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrIndexSplitter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrIndexSplitter.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrIndexSplitter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrIndexSplitter.java Tue Aug 12 14:46:45 2014
@@ -34,6 +34,7 @@ import org.apache.lucene.search.DocIdSet
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.lucene.util.FixedBitSet;
import org.apache.lucene.util.IOUtils;
import org.apache.solr.common.cloud.CompositeIdRouter;
@@ -167,7 +168,7 @@ public class SolrIndexSplitter {
BytesRef term = null;
DocsEnum docsEnum = null;
- CharsRef idRef = new CharsRef(100);
+ CharsRefBuilder idRef = new CharsRefBuilder();
for (;;) {
term = termsEnum.next();
if (term == null) break;
@@ -176,7 +177,7 @@ public class SolrIndexSplitter {
// FUTURE: if conversion to strings costs too much, we could
// specialize and use the hash function that can work over bytes.
- idRef = field.getType().indexedToReadable(term, idRef);
+ field.getType().indexedToReadable(term, idRef);
String idString = idRef.toString();
if (splitKey != null) {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java Tue Aug 12 14:46:45 2014
@@ -36,7 +36,9 @@ import java.util.concurrent.atomic.Atomi
import java.util.concurrent.locks.ReentrantLock;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.CharsRef;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.cloud.CloudDescriptor;
import org.apache.solr.cloud.DistributedQueue;
@@ -238,7 +240,7 @@ public class DistributedUpdateProcessor
private NamedList addsResponse = null;
private NamedList deleteResponse = null;
private NamedList deleteByQueryResponse = null;
- private CharsRef scratch;
+ private CharsRefBuilder scratch;
private final SchemaField idField;
@@ -747,7 +749,7 @@ public class DistributedUpdateProcessor
addsResponse = new NamedList<String>();
rsp.add("adds",addsResponse);
}
- if (scratch == null) scratch = new CharsRef();
+ if (scratch == null) scratch = new CharsRefBuilder();
idField.getType().indexedToReadable(cmd.getIndexedId(), scratch);
addsResponse.add(scratch.toString(), cmd.getVersion());
}
@@ -1121,9 +1123,9 @@ public class DistributedUpdateProcessor
// TODO: fieldtype needs externalToObject?
String oldValS = numericField.getFirstValue().toString();
SchemaField sf = schema.getField(sif.getName());
- BytesRef term = new BytesRef();
+ BytesRefBuilder term = new BytesRefBuilder();
sf.getType().readableToIndexed(oldValS, term);
- Object oldVal = sf.getType().toObject(sf, term);
+ Object oldVal = sf.getType().toObject(sf, term.get());
String fieldValS = fieldVal.toString();
Number result;
@@ -1233,7 +1235,7 @@ public class DistributedUpdateProcessor
deleteResponse = new NamedList<String>();
rsp.add("deletes",deleteResponse);
}
- if (scratch == null) scratch = new CharsRef();
+ if (scratch == null) scratch = new CharsRefBuilder();
idField.getType().indexedToReadable(cmd.getIndexedId(), scratch);
deleteResponse.add(scratch.toString(), cmd.getVersion()); // we're returning the version of the delete.. not the version of the doc we deleted.
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/DocBasedVersionConstraintsProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/DocBasedVersionConstraintsProcessorFactory.java?rev=1617493&r1=1617492&r2=1617493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/DocBasedVersionConstraintsProcessorFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/DocBasedVersionConstraintsProcessorFactory.java Tue Aug 12 14:46:45 2014
@@ -20,6 +20,7 @@ package org.apache.solr.update.processor
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefBuilder;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.util.NamedList;
@@ -230,9 +231,9 @@ public class DocBasedVersionConstraintsP
// in theory, the FieldType might still be CharSequence based,
// but in that case trust it to do an identiy conversion...
FieldType fieldType = userVersionField.getType();
- BytesRef term = new BytesRef();
+ BytesRefBuilder term = new BytesRefBuilder();
fieldType.readableToIndexed((CharSequence)rawValue, term);
- return fieldType.toObject(userVersionField, term);
+ return fieldType.toObject(userVersionField, term.get());
}
// else...
return rawValue;