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 to...@apache.org on 2015/03/09 12:28:21 UTC

svn commit: r1665191 - in /jackrabbit/oak/branches/1.0/oak-solr-core/src: main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/ main/resources/solr/oak/conf/ test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/ test/resources/solr/oak/...

Author: tommaso
Date: Mon Mar  9 11:28:21 2015
New Revision: 1665191

URL: http://svn.apache.org/r1665191
Log:
OAK-1658 - backported to branch 1.0

Modified:
    jackrabbit/oak/branches/1.0/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java
    jackrabbit/oak/branches/1.0/oak-solr-core/src/main/resources/solr/oak/conf/schema.xml
    jackrabbit/oak/branches/1.0/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java
    jackrabbit/oak/branches/1.0/oak-solr-core/src/test/resources/solr/oak/conf/schema.xml

Modified: jackrabbit/oak/branches/1.0/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java?rev=1665191&r1=1665190&r2=1665191&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java (original)
+++ jackrabbit/oak/branches/1.0/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java Mon Mar  9 11:28:21 2015
@@ -94,6 +94,11 @@ class FilterQueryParser {
                                         kv[1] = "_query_:\"{!dismax qf=" + fields + " q.op=OR}" + kv[1] + "\"";
                                     }
                                 }
+                                if ("mlt.fl".equals(kv[0]) && ":path".equals(kv[1])) {
+                                    // rep:similar passes the path of the node to find similar documents for in the :path
+                                    // but needs its indexed content to find similar documents
+                                    kv[1] = configuration.getCatchAllField();
+                                }
                                 solrQuery.setParam(kv[0], kv[1]);
                             }
                         }

Modified: jackrabbit/oak/branches/1.0/oak-solr-core/src/main/resources/solr/oak/conf/schema.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-solr-core/src/main/resources/solr/oak/conf/schema.xml?rev=1665191&r1=1665190&r2=1665191&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-solr-core/src/main/resources/solr/oak/conf/schema.xml (original)
+++ jackrabbit/oak/branches/1.0/oak-solr-core/src/main/resources/solr/oak/conf/schema.xml Mon Mar  9 11:28:21 2015
@@ -95,18 +95,18 @@
         <fieldType name="pdouble" class="solr.DoubleField"/>
         <fieldType name="pdate" class="solr.DateField" sortMissingLast="true"/>
 
-    <fieldType name="currency" class="solr.CurrencyField" precisionStep="8" defaultCurrency="USD" currencyConfig="currency.xml" />
-    <fieldtype name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField"/>
-  </types>
-  <fields>
-    <field name="path_exact" type="string" indexed="true" stored="true"/>
-    <field name="path_child" type="children_path" indexed="true" stored="false"/>
-    <field name="path_anc" type="parent_path" indexed="true" stored="false"/>
-    <field name="path_des" type="descendent_path" indexed="true" stored="false"/>
-    <field name="ignored" type="ignored" multiValued="true"/>
-    <field name="catch_all" type="text_general" indexed="true" stored="false" multiValued="true"/>
-    <field name="_version_" type="long" indexed="true" stored="true"/>
-    <field name=":path" type="string" indexed="true" stored="false"/>
+        <fieldType name="currency" class="solr.CurrencyField" precisionStep="8" defaultCurrency="USD"
+                   currencyConfig="currency.xml"/>
+        <fieldtype name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField"/>
+    </types>
+    <fields>
+        <field name="path_exact" type="string" indexed="true" stored="true"/>
+        <field name="path_child" type="children_path" indexed="true" stored="false"/>
+        <field name="path_anc" type="parent_path" indexed="true" stored="false"/>
+        <field name="path_des" type="descendent_path" indexed="true" stored="false"/>
+        <field name="catch_all" type="text_general" indexed="true" stored="false" multiValued="true" termVectors="true"/> <!-- term vectors used for rep:similar -->
+        <field name=":path" type="string" indexed="true" stored="false" />
+        <field name="_version_" type="long" indexed="true" stored="true"/>
 
     <dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
     <dynamicField name="*_is" type="int"    indexed="true"  stored="true"  multiValued="true"/>

Modified: jackrabbit/oak/branches/1.0/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java?rev=1665191&r1=1665190&r2=1665191&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java (original)
+++ jackrabbit/oak/branches/1.0/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java Mon Mar  9 11:28:21 2015
@@ -281,6 +281,26 @@ public class SolrIndexQueryTestIT extend
     }
 
     @Test
+    public void testRepSimilarXPathQuery() throws Exception {
+        String query = "//element(*, nt:base)[rep:similar(., '/test/a')]";
+        Tree test = root.getTree("/").addChild("test");
+        test.addChild("a").setProperty("text", "Hello World Hello World");
+        test.addChild("b").setProperty("text", "Hello World");
+        test.addChild("c").setProperty("text", "World");
+        test.addChild("d").setProperty("text", "Hello");
+        test.addChild("e").setProperty("text", "World");
+        test.addChild("f").setProperty("text", "Hello");
+        test.addChild("g").setProperty("text", "World");
+        test.addChild("h").setProperty("text", "Hello");
+        root.commit();
+        Iterator<String> result = executeQuery(query, "xpath").iterator();
+        assertTrue(result.hasNext());
+        assertEquals("/test/b", result.next());
+        assertTrue(result.hasNext());
+        assertEquals("/test/c", result.next());
+    }
+
+    @Test
     public void nativeSolr() throws Exception {
         test("native_solr.txt");
     }

Modified: jackrabbit/oak/branches/1.0/oak-solr-core/src/test/resources/solr/oak/conf/schema.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-solr-core/src/test/resources/solr/oak/conf/schema.xml?rev=1665191&r1=1665190&r2=1665191&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-solr-core/src/test/resources/solr/oak/conf/schema.xml (original)
+++ jackrabbit/oak/branches/1.0/oak-solr-core/src/test/resources/solr/oak/conf/schema.xml Mon Mar  9 11:28:21 2015
@@ -110,7 +110,7 @@
         <field name="path_anc" type="parent_path" indexed="true" stored="false"/>
         <field name="path_des" type="descendent_path" indexed="true" stored="false"/>
         <field name="ignored" type="ignored" />
-        <field name="catch_all" type="text_general" indexed="true" stored="false" multiValued="true"/>
+        <field name="catch_all" type="text_general" indexed="true" stored="false" multiValued="true" termVectors="true"/> <!-- term vectors used for rep:similar -->
         <field name="_version_" type="long" indexed="true" stored="true"/>
         <field name=":path" type="string" indexed="true" stored="false"/>