You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by fo...@apache.org on 2022/02/18 13:26:19 UTC

[jackrabbit-oak] 01/01: simplified addDynamicBoostField

This is an automated email from the ASF dual-hosted git repository.

fortino pushed a commit to branch FrancoisZhang-OAK-9696
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git

commit 76461010bab03b0fbb5a5e30e74f522e865d6cdf
Author: fabriziofortino <fa...@gmail.com>
AuthorDate: Fri Feb 18 14:22:46 2022 +0100

    simplified addDynamicBoostField
---
 .../index/elastic/index/ElasticDocument.java       | 24 +++++++++++-----------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticDocument.java b/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticDocument.java
index f272588..92ff2c3 100644
--- a/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticDocument.java
+++ b/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticDocument.java
@@ -100,6 +100,8 @@ public class ElasticDocument {
     void addDynamicBoostField(String propName, String value, double boost) {
         dynamicBoostFields.computeIfAbsent(propName, s -> new HashMap<>())
                 .putIfAbsent(value, boost);
+        // also add into fulltext field so lucene query syntax can be used against boosted terms
+        addFulltext(value);
     }
 
     void addSimilarityTag(String value) {
@@ -113,18 +115,6 @@ public class ElasticDocument {
             builder.startObject();
             {
                 builder.field(FieldNames.PATH, path);
-                for (Map.Entry<String, Map<String, Double>> f : dynamicBoostFields.entrySet()) {
-                    builder.startArray(f.getKey());
-                    for (Map.Entry<String, Double> v : f.getValue().entrySet()) {
-                        builder.startObject();
-                        builder.field("value", v.getKey());
-                        builder.field("boost", v.getValue());
-                        builder.endObject();
-                        // also add into fulltext field
-                        addFulltext(v.getKey());
-                    }
-                    builder.endArray();
-                }
                 if (fulltext.size() > 0) {
                     builder.field(FieldNames.FULLTEXT, fulltext);
                 }
@@ -144,6 +134,16 @@ public class ElasticDocument {
                 for (Map.Entry<String, List<Object>> prop : properties.entrySet()) {
                     builder.field(prop.getKey(), prop.getValue().size() == 1 ? prop.getValue().get(0) : prop.getValue());
                 }
+                for (Map.Entry<String, Map<String, Double>> f : dynamicBoostFields.entrySet()) {
+                    builder.startArray(f.getKey());
+                    for (Map.Entry<String, Double> v : f.getValue().entrySet()) {
+                        builder.startObject();
+                        builder.field("value", v.getKey());
+                        builder.field("boost", v.getValue());
+                        builder.endObject();
+                    }
+                    builder.endArray();
+                }
                 if (!similarityTags.isEmpty()) {
                     builder.field(ElasticIndexDefinition.SIMILARITY_TAGS, similarityTags);
                 }