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 2020/09/22 06:22:01 UTC
svn commit: r1881921 - in /jackrabbit/oak/trunk:
oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticDocument.java
oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexSuggestionCommonTest.java
Author: fortino
Date: Tue Sep 22 06:22:01 2020
New Revision: 1881921
URL: http://svn.apache.org/viewvc?rev=1881921&view=rev
Log:
OAK-9214: avoid duplications in :suggest
Modified:
jackrabbit/oak/trunk/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticDocument.java
jackrabbit/oak/trunk/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexSuggestionCommonTest.java
Modified: jackrabbit/oak/trunk/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticDocument.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticDocument.java?rev=1881921&r1=1881920&r2=1881921&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticDocument.java (original)
+++ jackrabbit/oak/trunk/oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticDocument.java Tue Sep 22 06:22:01 2020
@@ -27,15 +27,17 @@ import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
class ElasticDocument {
private static final Logger LOG = LoggerFactory.getLogger(ElasticDocument.class);
private final String path;
private final List<String> fulltext;
- private final List<String> suggest;
+ private final Set<String> suggest;
private final List<String> notNullProps;
private final List<String> nullProps;
private final Map<String, Object> properties;
@@ -43,7 +45,7 @@ class ElasticDocument {
ElasticDocument(String path) {
this.path = path;
this.fulltext = new ArrayList<>();
- this.suggest = new ArrayList<>();
+ this.suggest = new HashSet<>();
this.notNullProps = new ArrayList<>();
this.nullProps = new ArrayList<>();
this.properties = new HashMap<>();
Modified: jackrabbit/oak/trunk/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexSuggestionCommonTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexSuggestionCommonTest.java?rev=1881921&r1=1881920&r2=1881921&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexSuggestionCommonTest.java (original)
+++ jackrabbit/oak/trunk/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexSuggestionCommonTest.java Tue Sep 22 06:22:01 2020
@@ -403,6 +403,35 @@ public abstract class IndexSuggestionCom
});
}
+ @Test
+ public void testDuplicateSuggestionProperties() throws Exception {
+ String nodeType = JcrConstants.NT_UNSTRUCTURED;
+ String suggestProp1 = "shortDes";
+ String suggestProp2 = "longDes";
+
+ Node indexDefNode = createSuggestIndex("index-suggest", nodeType, suggestProp1);
+ addPropertyDefinition(indexDefNode, nodeType, suggestProp2, false);
+
+ Node indexedNode = root.addNode("indexedNode", nodeType);
+ indexedNode.setProperty(suggestProp1, "car here");
+ indexedNode.setProperty(suggestProp2, "car here");
+ indexedNode = root.addNode("indexedNode2", nodeType);
+ indexedNode.setProperty(suggestProp1, "car there");
+ indexedNode.setProperty(suggestProp2, "car there");
+
+ session.save();
+
+ String suggQuery = createSuggestQuery(nodeType, "car");
+ QueryManager queryManager = session.getWorkspace().getQueryManager();
+ assertEventually(() -> {
+ try {
+ assertEquals("There should be some suggestion",2, getAllResults(queryManager, suggQuery).size());
+ } catch (RepositoryException e) {
+ throw new RuntimeException(e);
+ }
+ });
+ }
+
private static void assertEventually(Runnable r) {
TestUtils.assertEventually(r, 3000 * 3);
}