From 6bb4fbd78eb7d39df2389508f915ae1206d913b3 Mon Sep 17 00:00:00 2001 From: Robert Newson Date: Tue, 9 May 2023 20:48:11 +0100 Subject: upgrade nouveau to lucene 9.6.0 --- nouveau/pom.xml | 2 +- .../couchdb/nouveau/lucene9/Lucene9Index.java | 32 ++++++++++++---------- src/docs/src/install/unix.rst | 2 +- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/nouveau/pom.xml b/nouveau/pom.xml index 1c2466761..3a4d478dc 100644 --- a/nouveau/pom.xml +++ b/nouveau/pom.xml @@ -24,7 +24,7 @@ -Duser.language=en -Duser.region=US -Duser.timezone=UTC 4.0.0 5.8.2 - 9.5.0 + 9.6.0 11 11 UTF-8 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(); diff --git a/src/docs/src/install/unix.rst b/src/docs/src/install/unix.rst index 3533b424a..8eff02d05 100644 --- a/src/docs/src/install/unix.rst +++ b/src/docs/src/install/unix.rst @@ -152,7 +152,7 @@ You should have the following installed: * `help2man `_ * `Python (>=3.6) for docs and tests `_ * `Python Sphinx (>=1.1.3) `_ -* Java (required for `nouveau`, minimum version 11, recommended version 19) +* Java (required for `nouveau`, minimum version 11, recommended version 19 or 20) * Apache Maven (required for `nouveau`, 3.x) You will only need libcurl if you plan to run the JavaScript test suite. And -- cgit v1.2.1