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/07/28 09:10:02 UTC
svn commit: r1693006 - in /jackrabbit/oak/branches/1.2: ./
oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/
oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/nodestate/
oak-sol...
Author: tommaso
Date: Tue Jul 28 07:10:01 2015
New Revision: 1693006
URL: http://svn.apache.org/r1693006
Log:
OAK-3147 - configurable jcr:content descendants collapsing (branch 1.2)
Modified:
jackrabbit/oak/branches/1.2/ (props changed)
jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/DefaultSolrConfiguration.java
jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/OakSolrConfiguration.java
jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfigurationDefaults.java
jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/nodestate/OakSolrNodeStateConfiguration.java
jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditor.java
jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/OakSolrConfigurationProviderService.java
jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java
jackrabbit/oak/branches/1.2/oak-solr-core/src/main/resources/solr/oak/conf/schema.xml
jackrabbit/oak/branches/1.2/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParserTest.java
jackrabbit/oak/branches/1.2/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java
jackrabbit/oak/branches/1.2/oak-solr-core/src/test/resources/solr/oak/conf/schema.xml
Propchange: jackrabbit/oak/branches/1.2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jul 28 07:10:01 2015
@@ -1,3 +1,3 @@
/jackrabbit/oak/branches/1.0:1665962
-/jackrabbit/oak/trunk:1672350,1672468,1672537,1672603,1672642,1672644,1672834-1672835,1673351,1673410,1673414-1673415,1673436,1673644,1673662-1673664,1673669,1673695,1673738,1673787,1673791,1674046,1674065,1674075,1674107,1674228,1674780,1674880,1675054-1675055,1675319,1675332,1675354,1675357,1675382,1675555,1675566,1675593,1676198,1676237,1676407,1676458,1676539,1676670,1676693,1676703,1676725,1677579,1677581,1677609,1677611,1677774,1677788,1677797,1677804,1677806,1677939,1677991,1678023,1678095-1678096,1678124,1678171,1678173,1678211,1678323,1678758,1678938,1678954,1679144,1679165,1679191,1679232,1679235,1679503,1679958,1679961,1680170,1680172,1680182,1680222,1680232,1680236,1680461,1680633,1680643,1680747,1680805-1680806,1680903,1681282,1681767,1681918,1682042,1682218,1682235,1682437,1682494,1682555,1682855,1682904,1683059,1683089,1683213,1683249,1683259,1683278,1683323,1683687,1683700,1684174-1684175,1684186,1684376,1684442,1684561,1684570,1684601,1684618,1684820,1684868,1685023
,1685075,1685370,1685552,1685589-1685590,1685840,1685964,1685977,1685989,1685999,1686023,1686032,1686097,1686162,1686229,1686234,1686253,1686414,1686780,1686854,1686857,1686971,1687053-1687055,1687175,1687196,1687198,1687220,1687239-1687240,1687301,1687441,1687553,1688089-1688090,1688172,1688179,1688349,1688421,1688436,1688453,1688616,1688622,1688634,1688636,1688817,1689003-1689004,1689008,1689577,1689581,1689623,1689810,1689828,1689831,1689833,1689903,1690017,1690043,1690047,1690057,1690247,1690249,1690634-1690637,1690650,1690669,1690674,1690885,1690941,1691139,1691151,1691159,1691167,1691183,1691188,1691210,1691280,1691307,1691331-1691333,1691345,1691384-1691385,1691401,1691509,1692133-1692134,1692274,1692363,1692478,1692998,1693002
+/jackrabbit/oak/trunk:1672350,1672468,1672537,1672603,1672642,1672644,1672834-1672835,1673351,1673410,1673414-1673415,1673436,1673644,1673662-1673664,1673669,1673695,1673738,1673787,1673791,1674046,1674065,1674075,1674107,1674228,1674780,1674880,1675054-1675055,1675319,1675332,1675354,1675357,1675382,1675555,1675566,1675593,1676198,1676237,1676407,1676458,1676539,1676670,1676693,1676703,1676725,1677579,1677581,1677609,1677611,1677774,1677788,1677797,1677804,1677806,1677939,1677991,1678023,1678095-1678096,1678124,1678171,1678173,1678211,1678323,1678758,1678938,1678954,1679144,1679165,1679191,1679232,1679235,1679503,1679958,1679961,1680170,1680172,1680182,1680222,1680232,1680236,1680461,1680633,1680643,1680747,1680805-1680806,1680903,1681282,1681767,1681918,1682042,1682218,1682235,1682437,1682494,1682555,1682855,1682904,1683059,1683089,1683213,1683249,1683259,1683278,1683323,1683687,1683700,1684174-1684175,1684186,1684376,1684442,1684561,1684570,1684601,1684618,1684820,1684868,1685023
,1685075,1685370,1685552,1685589-1685590,1685840,1685964,1685977,1685989,1685999,1686023,1686032,1686097,1686162,1686229,1686234,1686253,1686414,1686780,1686854,1686857,1686971,1687053-1687055,1687175,1687196,1687198,1687220,1687239-1687240,1687301,1687441,1687553,1688089-1688090,1688172,1688179,1688349,1688421,1688436,1688453,1688616,1688622,1688634,1688636,1688817,1689003-1689004,1689008,1689577,1689581,1689623,1689810,1689828,1689831,1689833,1689903,1690017,1690043,1690047,1690057,1690247,1690249,1690634-1690637,1690650,1690669,1690674,1690885,1690941,1691139,1691151,1691159,1691167,1691183,1691188,1691210,1691280,1691307,1691331-1691333,1691345,1691384-1691385,1691401,1691509,1692133-1692134,1692274,1692363,1692478,1692955,1692998,1693002
/jackrabbit/trunk:1345480
Modified: jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/DefaultSolrConfiguration.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/DefaultSolrConfiguration.java?rev=1693006&r1=1693005&r2=1693006&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/DefaultSolrConfiguration.java (original)
+++ jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/DefaultSolrConfiguration.java Tue Jul 28 07:10:01 2015
@@ -122,4 +122,15 @@ public class DefaultSolrConfiguration im
return usedProperties;
}
+ @Override
+ public boolean collapseJcrContentNodes() {
+ return SolrServerConfigurationDefaults.COLLAPSE_JCR_CONTENT_NODES;
+ }
+
+ @Nonnull
+ @Override
+ public String getCollapsedPathField() {
+ return SolrServerConfigurationDefaults.COLLAPSED_PATH_FIELD;
+ }
+
}
Modified: jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/OakSolrConfiguration.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/OakSolrConfiguration.java?rev=1693006&r1=1693005&r2=1693006&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/OakSolrConfiguration.java (original)
+++ jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/OakSolrConfiguration.java Tue Jul 28 07:10:01 2015
@@ -132,6 +132,25 @@ public interface OakSolrConfiguration {
Collection<String> getUsedProperties();
/**
+ * Make all nodes / documents matching a query that are descendants of a 'jcr:content' node collapse into such a
+ * node. That will result in resultsets being tipically much more compact in cases where most / all of the matching
+ * nodes match such a hierarchy.
+ *
+ * @return {@code true} if only the 'jcr:content' node should be returned for all its the matching descendants,
+ * {@code false} otherwise
+ */
+ boolean collapseJcrContentNodes();
+
+ /**
+ * Provide the name of the field to be used for indexing the collapsed path of each node when {@link #collapseJcrContentNodes()}
+ * is set to {@code true}.
+ *
+ * @return the name of the Solr field to be used for indexing and searching on collapsed paths.
+ */
+ @Nonnull
+ String getCollapsedPathField();
+
+ /**
* Enum for describing Solr commit policy used in a certain instance
*/
enum CommitPolicy {
Modified: jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfigurationDefaults.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfigurationDefaults.java?rev=1693006&r1=1693005&r2=1693006&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfigurationDefaults.java (original)
+++ jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfigurationDefaults.java Tue Jul 28 07:10:01 2015
@@ -49,5 +49,7 @@ public class SolrServerConfigurationDefa
public static final String[] IGNORED_PROPERTIES = {"rep:members", "rep:authorizableId", "jcr:uuid", "rep:principalName", "rep:password"};
public static final String TYPE_MAPPINGS = "";
public static final String PROPERTY_MAPPINGS = "";
+ public static final boolean COLLAPSE_JCR_CONTENT_NODES = false;
+ public static final String COLLAPSED_PATH_FIELD = "path_collapsed";
}
Modified: jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/nodestate/OakSolrNodeStateConfiguration.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/nodestate/OakSolrNodeStateConfiguration.java?rev=1693006&r1=1693005&r2=1693006&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/nodestate/OakSolrNodeStateConfiguration.java (original)
+++ jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/nodestate/OakSolrNodeStateConfiguration.java Tue Jul 28 07:10:01 2015
@@ -180,6 +180,17 @@ public class OakSolrNodeStateConfigurati
return usedProperties;
}
+ @Override
+ public boolean collapseJcrContentNodes() {
+ return getBooleanValueFor(Properties.COLLAPSE_JCR_CONTENT_NODES, SolrServerConfigurationDefaults.COLLAPSE_JCR_CONTENT_NODES);
+ }
+
+ @Nonnull
+ @Override
+ public String getCollapsedPathField() {
+ return getStringValueFor(Properties.COLLAPSED_PATH_FIELD, SolrServerConfigurationDefaults.COLLAPSED_PATH_FIELD);
+ }
+
private boolean getBooleanValueFor(String propertyName, boolean defaultValue) {
boolean value = defaultValue;
PropertyState property = definition.getProperty(propertyName);
@@ -229,6 +240,7 @@ public class OakSolrNodeStateConfigurati
public final class Properties {
// --> oak solr config properties <--
public static final String PATH_FIELD = "pathField";
+ public static final String COLLAPSED_PATH_FIELD = "pathField";
public static final String PARENT_FIELD = "parentField";
public static final String CHILDREN_FIELD = "childrenField";
public static final String DESCENDANTS_FIELD = "descendantsField";
@@ -242,6 +254,6 @@ public class OakSolrNodeStateConfigurati
public static final String TYPE_MAPPINGS = "typeMappings";
public static final String PROPERTY_MAPPINGS = "propertyMappings";
public static final String USED_PROPERTIES = "usedProperties";
-
+ public static final String COLLAPSE_JCR_CONTENT_NODES = "collapseJcrContentNodes";
}
}
Modified: jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditor.java?rev=1693006&r1=1693005&r2=1693006&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditor.java (original)
+++ jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditor.java Tue Jul 28 07:10:01 2015
@@ -211,6 +211,18 @@ class SolrIndexEditor implements IndexEd
SolrInputDocument inputDocument = new SolrInputDocument();
String path = getPath();
inputDocument.addField(configuration.getPathField(), path);
+
+ if (configuration.collapseJcrContentNodes()) {
+ int jcrContentIndex = path.lastIndexOf(JcrConstants.JCR_CONTENT);
+ if (jcrContentIndex >= 0) {
+ int index = jcrContentIndex + JcrConstants.JCR_CONTENT.length();
+ String collapsedPath = path.substring(0, index);
+ inputDocument.addField(configuration.getCollapsedPathField(), collapsedPath);
+ } else {
+ inputDocument.addField(configuration.getCollapsedPathField(), path);
+ }
+ }
+
for (PropertyState property : state.getProperties()) {
if ((configuration.getUsedProperties().size() > 0 && configuration.getUsedProperties().contains(property.getName()))
|| !configuration.getIgnoredProperties().contains(property.getName())) {
Modified: jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/OakSolrConfigurationProviderService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/OakSolrConfigurationProviderService.java?rev=1693006&r1=1693005&r2=1693006&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/OakSolrConfigurationProviderService.java (original)
+++ jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/OakSolrConfigurationProviderService.java Tue Jul 28 07:10:01 2015
@@ -60,6 +60,9 @@ public class OakSolrConfigurationProvide
@Property(value = SolrServerConfigurationDefaults.CATCHALL_FIELD, label = "catch all field")
private static final String CATCH_ALL_FIELD = "catch.all.field";
+ @Property(value = SolrServerConfigurationDefaults.COLLAPSED_PATH_FIELD, label = "field for collapsing jcr:content paths")
+ private static final String COLLAPSED_PATH_FIELD = "collapsed.path.field";
+
@Property(options = {
@PropertyOption(name = "HARD",
value = "Hard commit"
@@ -74,7 +77,6 @@ public class OakSolrConfigurationProvide
)
private static final String COMMIT_POLICY = "commit.policy";
-
@Property(intValue = SolrServerConfigurationDefaults.ROWS, label = "rows")
private static final String ROWS = "rows";
@@ -104,10 +106,14 @@ public class OakSolrConfigurationProvide
"mappings from JCR property names to Solr fields")
private static final String PROPERTY_MAPPINGS = "property.mappings";
+ @Property(boolValue = SolrServerConfigurationDefaults.COLLAPSE_JCR_CONTENT_NODES, label = "collapse jcr:content nodes")
+ private static final String COLLAPSE_JCR_CONTENT_NODES = "collapse.jcrcontent.nodes";
+
private String pathChildrenFieldName;
private String pathParentFieldName;
private String pathDescendantsFieldName;
private String pathExactFieldName;
+ private String collapsedPathField;
private String catchAllField;
private OakSolrConfiguration.CommitPolicy commitPolicy;
private int rows;
@@ -118,6 +124,7 @@ public class OakSolrConfigurationProvide
private String[] usedProperties;
private String[] typeMappings;
private String[] propertyMappings;
+ private boolean collapseJcrContentNodes;
private OakSolrConfiguration oakSolrConfiguration;
@@ -126,6 +133,7 @@ public class OakSolrConfigurationProvide
pathChildrenFieldName = String.valueOf(componentContext.getProperties().get(PATH_CHILDREN_FIELD));
pathParentFieldName = String.valueOf(componentContext.getProperties().get(PATH_PARENT_FIELD));
pathExactFieldName = String.valueOf(componentContext.getProperties().get(PATH_EXACT_FIELD));
+ collapsedPathField= String.valueOf(componentContext.getProperties().get(COLLAPSED_PATH_FIELD));
pathDescendantsFieldName = String.valueOf(componentContext.getProperties().get(PATH_DESCENDANTS_FIELD));
catchAllField = String.valueOf(componentContext.getProperties().get(CATCH_ALL_FIELD));
rows = Integer.parseInt(String.valueOf(componentContext.getProperties().get(ROWS)));
@@ -137,6 +145,7 @@ public class OakSolrConfigurationProvide
ignoredProperties = PropertiesUtil.toStringArray(componentContext.getProperties().get(IGNORED_PROPERTIES));
usedProperties = PropertiesUtil.toStringArray(componentContext.getProperties().get(USED_PROPERTIES));
propertyMappings = PropertiesUtil.toStringArray(componentContext.getProperties().get(PROPERTY_MAPPINGS));
+ collapseJcrContentNodes = Boolean.valueOf(String.valueOf(componentContext.getProperties().get(COLLAPSE_JCR_CONTENT_NODES)));
}
@Deactivate
@@ -263,6 +272,17 @@ public class OakSolrConfigurationProvide
return Collections.emptyList();
}
}
+
+ @Override
+ public boolean collapseJcrContentNodes() {
+ return collapseJcrContentNodes;
+ }
+
+ @Nonnull
+ @Override
+ public String getCollapsedPathField() {
+ return collapsedPathField;
+ }
};
}
return oakSolrConfiguration;
Modified: jackrabbit/oak/branches/1.2/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.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java?rev=1693006&r1=1693005&r2=1693006&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java (original)
+++ jackrabbit/oak/branches/1.2/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParser.java Tue Jul 28 07:10:01 2015
@@ -235,6 +235,10 @@ class FilterQueryParser {
}
}
+ if (configuration.collapseJcrContentNodes()) {
+ solrQuery.addFilterQuery("{!collapse field=" + configuration.getCollapsedPathField() + "}");
+ }
+
if (queryBuilder.length() == 0) {
queryBuilder.append("*:*");
}
Modified: jackrabbit/oak/branches/1.2/oak-solr-core/src/main/resources/solr/oak/conf/schema.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-solr-core/src/main/resources/solr/oak/conf/schema.xml?rev=1693006&r1=1693005&r2=1693006&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-solr-core/src/main/resources/solr/oak/conf/schema.xml (original)
+++ jackrabbit/oak/branches/1.2/oak-solr-core/src/main/resources/solr/oak/conf/schema.xml Tue Jul 28 07:10:01 2015
@@ -118,6 +118,7 @@
<field name=":indexed" type="tdate" indexed="true" stored="false" default="NOW" docValues="true"/>
<field name=":suggest-weight" type="tint" indexed="false" stored="false" default="1" docValues="true"/>
<field name=":suggest" type="string" indexed="true" stored="true" multiValued="true" />
+ <field name="path_collapsed" type="string" indexed="true" stored="false"/>
<field name="_version_" type="long" indexed="true" stored="true"/>
<!-- sorting dynamic fields -->
Modified: jackrabbit/oak/branches/1.2/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParserTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParserTest.java?rev=1693006&r1=1693005&r2=1693006&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParserTest.java (original)
+++ jackrabbit/oak/branches/1.2/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/FilterQueryParserTest.java Tue Jul 28 07:10:01 2015
@@ -22,8 +22,11 @@ import org.apache.jackrabbit.oak.spi.que
import org.apache.solr.client.solrj.SolrQuery;
import org.junit.Test;
+import java.util.Arrays;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -57,7 +60,8 @@ public class FilterQueryParserTest {
when(filter.getPath()).thenReturn("/");
SolrQuery solrQuery = FilterQueryParser.getQuery(filter, null, configuration);
assertNotNull(solrQuery);
- assertEquals(configuration.getFieldForPathRestriction(pathRestriction)+":\\/", solrQuery.get("fq"));
+ String[] filterQueries = solrQuery.getFilterQueries();
+ assertTrue(Arrays.asList(filterQueries).contains(configuration.getFieldForPathRestriction(pathRestriction) + ":\\/"));
assertEquals("*:*", solrQuery.get("q"));
}
Modified: jackrabbit/oak/branches/1.2/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.2/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java?rev=1693006&r1=1693005&r2=1693006&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java (original)
+++ jackrabbit/oak/branches/1.2/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexQueryTestIT.java Tue Jul 28 07:10:01 2015
@@ -296,20 +296,27 @@ public class SolrIndexQueryTestIT extend
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");
+ test.addChild("a").setProperty("text", "the quick brown fox jumped over the lazy white dog");
+ test.addChild("b").setProperty("text", "I am a dog");
+ test.addChild("c").setProperty("text", "dogs don't hurt");
+ test.addChild("d").setProperty("text", "white men can't jump");
+ test.addChild("e").setProperty("text", "the fox is brown");
+ test.addChild("f").setProperty("text", "a quickest dog jumped over the quick white dog");
+ test.addChild("g").setProperty("text", "hello world");
+ test.addChild("h").setProperty("text", "over the lazy top");
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());
+ assertEquals("/test/d", result.next());
+ assertTrue(result.hasNext());
+ assertEquals("/test/e", result.next());
+ assertTrue(result.hasNext());
+ assertEquals("/test/f", result.next());
+ assertTrue(result.hasNext());
+ assertEquals("/test/h", result.next());
+ assertFalse(result.hasNext());
}
@Test
Modified: jackrabbit/oak/branches/1.2/oak-solr-core/src/test/resources/solr/oak/conf/schema.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-solr-core/src/test/resources/solr/oak/conf/schema.xml?rev=1693006&r1=1693005&r2=1693006&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-solr-core/src/test/resources/solr/oak/conf/schema.xml (original)
+++ jackrabbit/oak/branches/1.2/oak-solr-core/src/test/resources/solr/oak/conf/schema.xml Tue Jul 28 07:10:01 2015
@@ -126,11 +126,12 @@
<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" 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"/>
<field name=":indexed" type="tdate" indexed="true" stored="false" default="NOW" docValues="true"/>
<field name=":suggest-weight" type="tint" indexed="false" stored="false" default="1" docValues="true"/>
<field name=":suggest" type="string" indexed="true" stored="true" multiValued="true" />
+ <field name="path_collapsed" type="string" indexed="true" stored="true"/>
+ <field name="_version_" type="long" indexed="true" stored="true"/>
<!-- sorting dynamic fields -->
<dynamicField name="*_double_sort" type="tdouble" indexed="false" stored="false" multiValued="false" docValues="true"/>