diff options
author | Robert Newson <rnewson@apache.org> | 2023-05-09 20:48:11 +0100 |
---|---|---|
committer | Robert Newson <rnewson@apache.org> | 2023-05-09 20:48:11 +0100 |
commit | 6bb4fbd78eb7d39df2389508f915ae1206d913b3 (patch) | |
tree | e3d593317f843d5c078b0cb40e6af6e5b0883de4 /nouveau/src/main/java/org/apache/couchdb | |
parent | 9b3fbf4c37f3467471ad38d5e495dd6686d04ff0 (diff) | |
download | couchdb-6bb4fbd78eb7d39df2389508f915ae1206d913b3.tar.gz |
upgrade nouveau to lucene 9.6.0
Diffstat (limited to 'nouveau/src/main/java/org/apache/couchdb')
-rw-r--r-- | nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Index.java | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Index.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Index.java index 02818f41f..addb801f1 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Index.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Index.java @@ -56,7 +56,7 @@ import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field.Store; import org.apache.lucene.document.SortedDocValuesField; -import org.apache.lucene.document.SortedSetDocValuesField; +import org.apache.lucene.document.StoredValue; import org.apache.lucene.facet.FacetResult; import org.apache.lucene.facet.Facets; import org.apache.lucene.facet.FacetsCollector; @@ -248,12 +248,19 @@ public class Lucene9Index extends Index { if (field.name().equals("_id")) { continue; } - if (field.numericValue() != null) { - fields.add(new StoredField(field.name(), field.numericValue().doubleValue())); - } else if (field.binaryValue() != null) { - fields.add(new StoredField(field.name(), toBytes(field.binaryValue()))); - } else if (field.stringValue() != null) { - fields.add(new StoredField(field.name(), field.stringValue())); + final StoredValue storedValue = field.storedValue(); + switch (storedValue.getType()) { + case DOUBLE: + fields.add(new StoredField(field.name(), storedValue.getDoubleValue())); + break; + case STRING: + fields.add(new StoredField(field.name(), storedValue.getStringValue())); + break; + case BINARY: + fields.add(new StoredField(field.name(), storedValue.getBinaryValue())); + break; + default: + throw new IllegalArgumentException(storedValue.getType() + " not supported"); } } @@ -387,18 +394,13 @@ public class Lucene9Index extends Index { result.add(new org.apache.lucene.document.TextField(f.getName(), f.getValue(), f.isStore() ? Store.YES : Store.NO)); } else if (field instanceof StringField) { - // TODO use KeywordField when available. var f = (StringField) field; - result.add(new org.apache.lucene.document.StringField(f.getName(), f.getValue(), + result.add(new org.apache.lucene.document.KeywordField(f.getName(), f.getValue(), f.isStore() ? Store.YES : Store.NO)); - result.add(new SortedSetDocValuesField(f.getName(), - new BytesRef(f.getValue()))); } else if (field instanceof DoubleField) { var f = (DoubleField) field; - result.add(new org.apache.lucene.document.DoubleField(f.getName(), f.getValue())); - if (f.isStore()) { - result.add(new org.apache.lucene.document.StoredField(f.getName(), f.getValue())); - } + result.add(new org.apache.lucene.document.DoubleField(f.getName(), f.getValue(), + f.isStore() ? Store.YES : Store.NO)); } else if (field instanceof StoredField) { var f = (StoredField) field; var val = f.getValue(); |