You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "fabriziofortino (via GitHub)" <gi...@apache.org> on 2023/02/20 16:36:42 UTC

[GitHub] [jackrabbit-oak] fabriziofortino opened a new pull request, #853: OAK-10118: fix inconsistencies between lucene and elastic on order by queries

fabriziofortino opened a new pull request, #853:
URL: https://github.com/apache/jackrabbit-oak/pull/853

   * move order by tests into common oak-search
   * when the order by uses a function and the corresponding property definition is a regexp the index cannot perform the sorting


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@jackrabbit.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [jackrabbit-oak] nit0906 commented on a diff in pull request #853: OAK-10118: fix inconsistencies between lucene and elastic on order by queries

Posted by "nit0906 (via GitHub)" <gi...@apache.org>.
nit0906 commented on code in PR #853:
URL: https://github.com/apache/jackrabbit-oak/pull/853#discussion_r1115225573


##########
oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/ElasticIndexPlanner.java:
##########
@@ -48,6 +53,8 @@ protected List<QueryIndex.OrderEntry> createSortOrder(IndexDefinition.IndexingRu
             PropertyDefinition pd = rule.getConfig(propName);
             if (pd != null
                     && o.getPropertyType() != null
+                    // functions on regexp-based properties must be skipped since the values cannot be indexed
+                    && (!pd.isRegexp || !propName.startsWith(QueryConstants.FUNCTION_RESTRICTION_PREFIX))

Review Comment:
   Do we want to ignore those properties that have regex enabled and have a function defined or either of these ? As per the comment it should be the first one but the condition is for the latter. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@jackrabbit.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [jackrabbit-oak] fabriziofortino merged pull request #853: OAK-10118: fix inconsistencies between lucene and elastic on order by queries

Posted by "fabriziofortino (via GitHub)" <gi...@apache.org>.
fabriziofortino merged PR #853:
URL: https://github.com/apache/jackrabbit-oak/pull/853


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@jackrabbit.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [jackrabbit-oak] nit0906 commented on a diff in pull request #853: OAK-10118: fix inconsistencies between lucene and elastic on order by queries

Posted by "nit0906 (via GitHub)" <gi...@apache.org>.
nit0906 commented on code in PR #853:
URL: https://github.com/apache/jackrabbit-oak/pull/853#discussion_r1115225573


##########
oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/ElasticIndexPlanner.java:
##########
@@ -48,6 +53,8 @@ protected List<QueryIndex.OrderEntry> createSortOrder(IndexDefinition.IndexingRu
             PropertyDefinition pd = rule.getConfig(propName);
             if (pd != null
                     && o.getPropertyType() != null
+                    // functions on regexp-based properties must be skipped since the values cannot be indexed
+                    && (!pd.isRegexp || !propName.startsWith(QueryConstants.FUNCTION_RESTRICTION_PREFIX))

Review Comment:
   Do we want to ignore those properties that have regex enabled and have a function defined or either of these ? As per the comment it should be the first one but the condition is for the latter. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@jackrabbit.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [jackrabbit-oak] nit0906 commented on a diff in pull request #853: OAK-10118: fix inconsistencies between lucene and elastic on order by queries

Posted by "nit0906 (via GitHub)" <gi...@apache.org>.
nit0906 commented on code in PR #853:
URL: https://github.com/apache/jackrabbit-oak/pull/853#discussion_r1115226214


##########
oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneOrderByTest.java:
##########
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.plugins.index.lucene;
+
+import org.apache.jackrabbit.oak.api.ContentRepository;
+import org.apache.jackrabbit.oak.plugins.index.LuceneIndexOptions;
+import org.apache.jackrabbit.oak.plugins.index.OrderByCommonTest;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+import java.io.File;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+public class LuceneOrderByTest extends OrderByCommonTest {
+
+    private ExecutorService executorService = Executors.newFixedThreadPool(2);
+    @Rule
+    public TemporaryFolder temporaryFolder = new TemporaryFolder(new File("target"));
+
+    @Override
+    protected ContentRepository createRepository() {
+        repositoryOptionsUtil = new LuceneTestRepositoryBuilder(executorService, temporaryFolder).build();
+        indexOptions = new LuceneIndexOptions();
+        return repositoryOptionsUtil.getOak().createContentRepository();
+    }
+
+    @Ignore("OAK-7370")

Review Comment:
   Can we add the jira's title also in the Ignore annotation comment ?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@jackrabbit.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [jackrabbit-oak] nfsantos commented on a diff in pull request #853: OAK-10118: fix inconsistencies between lucene and elastic on order by queries

Posted by "nfsantos (via GitHub)" <gi...@apache.org>.
nfsantos commented on code in PR #853:
URL: https://github.com/apache/jackrabbit-oak/pull/853#discussion_r1112686285


##########
oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/query/ElasticIndexPlanner.java:
##########
@@ -36,6 +37,10 @@ public ElasticIndexPlanner(IndexNode indexNode, String indexPath, Filter filter,
         super(indexNode, indexPath, filter, sortOrder);
     }
 
+    /**
+     * Overrides the basic planner to add support for all the defined properties regardless from the ordered flag since

Review Comment:
   ```suggestion
        * Overrides the basic planner to add support for all the defined properties regardless of the ordered flag since
   ```



##########
oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneOrderByTest.java:
##########
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.plugins.index.lucene;
+
+import org.apache.jackrabbit.oak.api.ContentRepository;
+import org.apache.jackrabbit.oak.plugins.index.LuceneIndexOptions;
+import org.apache.jackrabbit.oak.plugins.index.OrderByCommonTest;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+import java.io.File;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+public class LuceneOrderByTest extends OrderByCommonTest {
+
+    private ExecutorService executorService = Executors.newFixedThreadPool(2);
+    @Rule
+    public TemporaryFolder temporaryFolder = new TemporaryFolder(new File("target"));
+
+    @Override
+    protected ContentRepository createRepository() {
+        repositoryOptionsUtil = new LuceneTestRepositoryBuilder(executorService, temporaryFolder).build();
+        indexOptions = new LuceneIndexOptions();
+        return repositoryOptionsUtil.getOak().createContentRepository();
+    }
+
+    @Ignore("OAK-7370")
+    @Test
+    @Override
+    public void orderByScoreAcrossUnion() throws Exception {
+        super.orderByScoreAcrossUnion();
+    }
+
+    @Ignore("some condition does not work in lucene")

Review Comment:
   This sentence is not clear. What conditions?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@jackrabbit.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [jackrabbit-oak] nit0906 commented on a diff in pull request #853: OAK-10118: fix inconsistencies between lucene and elastic on order by queries

Posted by "nit0906 (via GitHub)" <gi...@apache.org>.
nit0906 commented on code in PR #853:
URL: https://github.com/apache/jackrabbit-oak/pull/853#discussion_r1115226214


##########
oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneOrderByTest.java:
##########
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.plugins.index.lucene;
+
+import org.apache.jackrabbit.oak.api.ContentRepository;
+import org.apache.jackrabbit.oak.plugins.index.LuceneIndexOptions;
+import org.apache.jackrabbit.oak.plugins.index.OrderByCommonTest;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+import java.io.File;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+public class LuceneOrderByTest extends OrderByCommonTest {
+
+    private ExecutorService executorService = Executors.newFixedThreadPool(2);
+    @Rule
+    public TemporaryFolder temporaryFolder = new TemporaryFolder(new File("target"));
+
+    @Override
+    protected ContentRepository createRepository() {
+        repositoryOptionsUtil = new LuceneTestRepositoryBuilder(executorService, temporaryFolder).build();
+        indexOptions = new LuceneIndexOptions();
+        return repositoryOptionsUtil.getOak().createContentRepository();
+    }
+
+    @Ignore("OAK-7370")

Review Comment:
   Can we add the jira's title also in the Ignore annotation comment ?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@jackrabbit.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org