You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2013/08/16 20:32:09 UTC
svn commit: r1514836 - in /lucene/dev/branches/branch_4x: ./ dev-tools/
lucene/ lucene/analysis/
lucene/analysis/icu/src/java/org/apache/lucene/collation/ lucene/backwards/
lucene/benchmark/ lucene/classification/ lucene/classification/src/
lucene/code...
Author: hossman
Date: Fri Aug 16 18:32:07 2013
New Revision: 1514836
URL: http://svn.apache.org/r1514836
Log:
SOLR-3936: Fixed QueryElevationComponent sorting when used with Grouping (merge r1514795)
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/dev-tools/ (props changed)
lucene/dev/branches/branch_4x/lucene/ (props changed)
lucene/dev/branches/branch_4x/lucene/BUILD.txt (props changed)
lucene/dev/branches/branch_4x/lucene/CHANGES.txt (props changed)
lucene/dev/branches/branch_4x/lucene/JRE_VERSION_MIGRATION.txt (props changed)
lucene/dev/branches/branch_4x/lucene/LICENSE.txt (props changed)
lucene/dev/branches/branch_4x/lucene/MIGRATE.txt (props changed)
lucene/dev/branches/branch_4x/lucene/NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/lucene/README.txt (props changed)
lucene/dev/branches/branch_4x/lucene/SYSTEM_REQUIREMENTS.txt (props changed)
lucene/dev/branches/branch_4x/lucene/analysis/ (props changed)
lucene/dev/branches/branch_4x/lucene/analysis/icu/src/java/org/apache/lucene/collation/ICUCollationKeyFilterFactory.java (props changed)
lucene/dev/branches/branch_4x/lucene/backwards/ (props changed)
lucene/dev/branches/branch_4x/lucene/benchmark/ (props changed)
lucene/dev/branches/branch_4x/lucene/build.xml (props changed)
lucene/dev/branches/branch_4x/lucene/classification/ (props changed)
lucene/dev/branches/branch_4x/lucene/classification/build.xml (props changed)
lucene/dev/branches/branch_4x/lucene/classification/ivy.xml (props changed)
lucene/dev/branches/branch_4x/lucene/classification/src/ (props changed)
lucene/dev/branches/branch_4x/lucene/codecs/ (props changed)
lucene/dev/branches/branch_4x/lucene/common-build.xml (props changed)
lucene/dev/branches/branch_4x/lucene/core/ (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/index.40.cfs.zip (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/index.40.nocfs.zip (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/index.40.optimized.cfs.zip (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/index.40.optimized.nocfs.zip (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestSort.java (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestSortDocValues.java (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestSortRandom.java (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestTopFieldCollector.java (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/search/TestTotalHitCountCollector.java (props changed)
lucene/dev/branches/branch_4x/lucene/demo/ (props changed)
lucene/dev/branches/branch_4x/lucene/facet/ (props changed)
lucene/dev/branches/branch_4x/lucene/grouping/ (props changed)
lucene/dev/branches/branch_4x/lucene/highlighter/ (props changed)
lucene/dev/branches/branch_4x/lucene/ivy-settings.xml (props changed)
lucene/dev/branches/branch_4x/lucene/join/ (props changed)
lucene/dev/branches/branch_4x/lucene/licenses/ (props changed)
lucene/dev/branches/branch_4x/lucene/memory/ (props changed)
lucene/dev/branches/branch_4x/lucene/misc/ (props changed)
lucene/dev/branches/branch_4x/lucene/module-build.xml (props changed)
lucene/dev/branches/branch_4x/lucene/queries/ (props changed)
lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionQuerySort.java (props changed)
lucene/dev/branches/branch_4x/lucene/queryparser/ (props changed)
lucene/dev/branches/branch_4x/lucene/replicator/ (props changed)
lucene/dev/branches/branch_4x/lucene/sandbox/ (props changed)
lucene/dev/branches/branch_4x/lucene/site/ (props changed)
lucene/dev/branches/branch_4x/lucene/spatial/ (props changed)
lucene/dev/branches/branch_4x/lucene/suggest/ (props changed)
lucene/dev/branches/branch_4x/lucene/test-framework/ (props changed)
lucene/dev/branches/branch_4x/lucene/tools/ (props changed)
lucene/dev/branches/branch_4x/solr/ (props changed)
lucene/dev/branches/branch_4x/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_4x/solr/LICENSE.txt (props changed)
lucene/dev/branches/branch_4x/solr/NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/solr/README.txt (props changed)
lucene/dev/branches/branch_4x/solr/SYSTEM_REQUIREMENTS.txt (props changed)
lucene/dev/branches/branch_4x/solr/build.xml (props changed)
lucene/dev/branches/branch_4x/solr/cloud-dev/ (props changed)
lucene/dev/branches/branch_4x/solr/common-build.xml (props changed)
lucene/dev/branches/branch_4x/solr/contrib/ (props changed)
lucene/dev/branches/branch_4x/solr/core/ (props changed)
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/TestConfig.java (props changed)
lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
lucene/dev/branches/branch_4x/solr/example/ (props changed)
lucene/dev/branches/branch_4x/solr/licenses/ (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpclient-LICENSE-ASL.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpclient-NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpcore-LICENSE-ASL.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpcore-NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpmime-LICENSE-ASL.txt (props changed)
lucene/dev/branches/branch_4x/solr/licenses/httpmime-NOTICE.txt (props changed)
lucene/dev/branches/branch_4x/solr/scripts/ (props changed)
lucene/dev/branches/branch_4x/solr/site/ (props changed)
lucene/dev/branches/branch_4x/solr/solrj/ (props changed)
lucene/dev/branches/branch_4x/solr/test-framework/ (props changed)
lucene/dev/branches/branch_4x/solr/webapp/ (props changed)
Modified: lucene/dev/branches/branch_4x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/CHANGES.txt?rev=1514836&r1=1514835&r2=1514836&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/solr/CHANGES.txt Fri Aug 16 18:32:07 2013
@@ -106,6 +106,9 @@ Bug Fixes
of divide by zero, and makes estimated hit counts meaningful in non-optimized
indexes. (hossman)
+* SOLR-3936: Fixed QueryElevationComponent sorting when used with Grouping
+ (Michael Garski via hossman)
+
Optimizations
----------------------
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java?rev=1514836&r1=1514835&r2=1514836&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java Fri Aug 16 18:32:07 2013
@@ -44,6 +44,7 @@ import org.apache.solr.common.SolrExcept
import org.apache.solr.common.params.QueryElevationParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.schema.IndexSchema;
+import org.apache.solr.search.grouping.GroupingSpecification;
import org.apache.solr.util.DOMUtil;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
@@ -424,23 +425,25 @@ public class QueryElevationComponent ext
}));
} else {
// Check if the sort is based on score
- boolean modify = false;
SortField[] current = sortSpec.getSort().getSort();
- ArrayList<SortField> sorts = new ArrayList<SortField>(current.length + 1);
- // Perhaps force it to always sort by score
- if (force && current[0].getType() != SortField.Type.SCORE) {
- sorts.add(new SortField("_elevate_", comparator, true));
- modify = true;
- }
- for (SortField sf : current) {
- if (sf.getType() == SortField.Type.SCORE) {
- sorts.add(new SortField("_elevate_", comparator, !sf.getReverse()));
- modify = true;
- }
- sorts.add(sf);
+ Sort modified = this.modifySort(current, force, comparator);
+ if(modified != null) {
+ sortSpec.setSort(modified);
}
- if (modify) {
- sortSpec.setSort(new Sort(sorts.toArray(new SortField[sorts.size()])));
+ }
+
+ // alter the sorting in the grouping specification if there is one
+ GroupingSpecification groupingSpec = rb.getGroupingSpec();
+ if(groupingSpec != null) {
+ SortField[] groupSort = groupingSpec.getGroupSort().getSort();
+ Sort modGroupSort = this.modifySort(groupSort, force, comparator);
+ if(modGroupSort != null) {
+ groupingSpec.setGroupSort(modGroupSort);
+ }
+ SortField[] withinGroupSort = groupingSpec.getSortWithinGroup().getSort();
+ Sort modWithinGroupSort = this.modifySort(withinGroupSort, force, comparator);
+ if(modWithinGroupSort != null) {
+ groupingSpec.setSortWithinGroup(modWithinGroupSort);
}
}
}
@@ -466,6 +469,25 @@ public class QueryElevationComponent ext
}
}
+ private Sort modifySort(SortField[] current, boolean force, ElevationComparatorSource comparator) {
+ boolean modify = false;
+ ArrayList<SortField> sorts = new ArrayList<SortField>(current.length + 1);
+ // Perhaps force it to always sort by score
+ if (force && current[0].getType() != SortField.Type.SCORE) {
+ sorts.add(new SortField("_elevate_", comparator, true));
+ modify = true;
+ }
+ for (SortField sf : current) {
+ if (sf.getType() == SortField.Type.SCORE) {
+ sorts.add(new SortField("_elevate_", comparator, !sf.getReverse()));
+ modify = true;
+ }
+ sorts.add(sf);
+ }
+
+ return modify ? new Sort(sorts.toArray(new SortField[sorts.size()])) : null;
+ }
+
@Override
public void process(ResponseBuilder rb) throws IOException {
// Do nothing -- the real work is modifying the input query
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java?rev=1514836&r1=1514835&r2=1514836&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java Fri Aug 16 18:32:07 2013
@@ -22,6 +22,7 @@ import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.IOUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.params.CommonParams;
+import org.apache.solr.common.params.GroupParams;
import org.apache.solr.common.params.MapSolrParams;
import org.apache.solr.common.params.QueryElevationParams;
import org.apache.solr.util.FileUtils;
@@ -106,6 +107,208 @@ public class QueryElevationComponentTest
}
@Test
+ public void testGroupedQuery() throws Exception {
+ try {
+ init("schema11.xml");
+ clearIndex();
+ assertU(commit());
+ assertU(adoc("id", "1", "text", "XXXX XXXX", "str_s", "a"));
+ assertU(adoc("id", "2", "text", "XXXX AAAA", "str_s", "b"));
+ assertU(adoc("id", "3", "text", "ZZZZ", "str_s", "c"));
+ assertU(adoc("id", "4", "text", "XXXX ZZZZ", "str_s", "d"));
+ assertU(adoc("id", "5", "text", "ZZZZ ZZZZ", "str_s", "e"));
+ assertU(adoc("id", "6", "text", "AAAA AAAA AAAA", "str_s", "f"));
+ assertU(adoc("id", "7", "text", "AAAA AAAA ZZZZ", "str_s", "g"));
+ assertU(adoc("id", "8", "text", "XXXX", "str_s", "h"));
+ assertU(adoc("id", "9", "text", "YYYY ZZZZ", "str_s", "i"));
+
+ assertU(adoc("id", "22", "text", "XXXX ZZZZ AAAA", "str_s", "b"));
+ assertU(adoc("id", "66", "text", "XXXX ZZZZ AAAA", "str_s", "f"));
+ assertU(adoc("id", "77", "text", "XXXX ZZZZ AAAA", "str_s", "g"));
+
+ assertU(commit());
+
+ final String groups = "//arr[@name='groups']";
+
+ assertQ("non-elevated group query",
+ req(CommonParams.Q, "AAAA",
+ CommonParams.QT, "/elevate",
+ GroupParams.GROUP_FIELD, "str_s",
+ GroupParams.GROUP, "true",
+ GroupParams.GROUP_TOTAL_COUNT, "true",
+ GroupParams.GROUP_LIMIT, "100",
+ QueryElevationParams.ENABLE, "false",
+ CommonParams.FL, "id, score, [elevated]")
+ , "//*[@name='ngroups'][.='3']"
+ , "//*[@name='matches'][.='6']"
+
+ , groups +"/lst[1]//doc[1]/float[@name='id'][.='6.0']"
+ , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[1]//doc[2]/float[@name='id'][.='66.0']"
+ , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[2]//doc[1]/float[@name='id'][.='7.0']"
+ , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[2]//doc[2]/float[@name='id'][.='77.0']"
+ , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[3]//doc[1]/float[@name='id'][.='2.0']"
+ , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[3]//doc[2]/float[@name='id'][.='22.0']"
+ , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
+ );
+
+ assertQ("elevated group query",
+ req(CommonParams.Q, "AAAA",
+ CommonParams.QT, "/elevate",
+ GroupParams.GROUP_FIELD, "str_s",
+ GroupParams.GROUP, "true",
+ GroupParams.GROUP_TOTAL_COUNT, "true",
+ GroupParams.GROUP_LIMIT, "100",
+ CommonParams.FL, "id, score, [elevated]")
+ , "//*[@name='ngroups'][.='3']"
+ , "//*[@name='matches'][.='6']"
+
+ , groups +"/lst[1]//doc[1]/float[@name='id'][.='7.0']"
+ , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='true']"
+ , groups +"/lst[1]//doc[2]/float[@name='id'][.='77.0']"
+ , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[2]//doc[1]/float[@name='id'][.='6.0']"
+ , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[2]//doc[2]/float[@name='id'][.='66.0']"
+ , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[3]//doc[1]/float[@name='id'][.='2.0']"
+ , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[3]//doc[2]/float[@name='id'][.='22.0']"
+ , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
+ );
+
+ assertQ("non-elevated because sorted group query",
+ req(CommonParams.Q, "AAAA",
+ CommonParams.QT, "/elevate",
+ CommonParams.SORT, "id asc",
+ GroupParams.GROUP_FIELD, "str_s",
+ GroupParams.GROUP, "true",
+ GroupParams.GROUP_TOTAL_COUNT, "true",
+ GroupParams.GROUP_LIMIT, "100",
+ CommonParams.FL, "id, score, [elevated]")
+ , "//*[@name='ngroups'][.='3']"
+ , "//*[@name='matches'][.='6']"
+
+ , groups +"/lst[1]//doc[1]/float[@name='id'][.='2.0']"
+ , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[1]//doc[2]/float[@name='id'][.='22.0']"
+ , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[2]//doc[1]/float[@name='id'][.='6.0']"
+ , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[2]//doc[2]/float[@name='id'][.='66.0']"
+ , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[3]//doc[1]/float[@name='id'][.='7.0']"
+ , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='true']"
+ , groups +"/lst[3]//doc[2]/float[@name='id'][.='77.0']"
+ , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
+ );
+
+ assertQ("force-elevated sorted group query",
+ req(CommonParams.Q, "AAAA",
+ CommonParams.QT, "/elevate",
+ CommonParams.SORT, "id asc",
+ QueryElevationParams.FORCE_ELEVATION, "true",
+ GroupParams.GROUP_FIELD, "str_s",
+ GroupParams.GROUP, "true",
+ GroupParams.GROUP_TOTAL_COUNT, "true",
+ GroupParams.GROUP_LIMIT, "100",
+ CommonParams.FL, "id, score, [elevated]")
+ , "//*[@name='ngroups'][.='3']"
+ , "//*[@name='matches'][.='6']"
+
+ , groups +"/lst[1]//doc[1]/float[@name='id'][.='7.0']"
+ , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='true']"
+ , groups +"/lst[1]//doc[2]/float[@name='id'][.='77.0']"
+ , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[2]//doc[1]/float[@name='id'][.='2.0']"
+ , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[2]//doc[2]/float[@name='id'][.='22.0']"
+ , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[3]//doc[1]/float[@name='id'][.='6.0']"
+ , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[3]//doc[2]/float[@name='id'][.='66.0']"
+ , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
+ );
+
+
+ assertQ("non-elevated because of sort within group query",
+ req(CommonParams.Q, "AAAA",
+ CommonParams.QT, "/elevate",
+ CommonParams.SORT, "id asc",
+ GroupParams.GROUP_SORT, "id desc",
+ GroupParams.GROUP_FIELD, "str_s",
+ GroupParams.GROUP, "true",
+ GroupParams.GROUP_TOTAL_COUNT, "true",
+ GroupParams.GROUP_LIMIT, "100",
+ CommonParams.FL, "id, score, [elevated]")
+ , "//*[@name='ngroups'][.='3']"
+ , "//*[@name='matches'][.='6']"
+
+ , groups +"/lst[1]//doc[1]/float[@name='id'][.='22.0']"
+ , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[1]//doc[2]/float[@name='id'][.='2.0']"
+ , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[2]//doc[1]/float[@name='id'][.='66.0']"
+ , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[2]//doc[2]/float[@name='id'][.='6.0']"
+ , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[3]//doc[1]/float[@name='id'][.='77.0']"
+ , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[3]//doc[2]/float[@name='id'][.='7.0']"
+ , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='true']"
+ );
+
+
+ assertQ("force elevated sort within sorted group query",
+ req(CommonParams.Q, "AAAA",
+ CommonParams.QT, "/elevate",
+ CommonParams.SORT, "id asc",
+ GroupParams.GROUP_SORT, "id desc",
+ QueryElevationParams.FORCE_ELEVATION, "true",
+ GroupParams.GROUP_FIELD, "str_s",
+ GroupParams.GROUP, "true",
+ GroupParams.GROUP_TOTAL_COUNT, "true",
+ GroupParams.GROUP_LIMIT, "100",
+ CommonParams.FL, "id, score, [elevated]")
+ , "//*[@name='ngroups'][.='3']"
+ , "//*[@name='matches'][.='6']"
+
+ , groups +"/lst[1]//doc[1]/float[@name='id'][.='7.0']"
+ , groups +"/lst[1]//doc[1]/bool[@name='[elevated]'][.='true']"
+ , groups +"/lst[1]//doc[2]/float[@name='id'][.='77.0']"
+ , groups +"/lst[1]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[2]//doc[1]/float[@name='id'][.='22.0']"
+ , groups +"/lst[2]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[2]//doc[2]/float[@name='id'][.='2.0']"
+ , groups +"/lst[2]//doc[2]/bool[@name='[elevated]'][.='false']"
+
+ , groups +"/lst[3]//doc[1]/float[@name='id'][.='66.0']"
+ , groups +"/lst[3]//doc[1]/bool[@name='[elevated]'][.='false']"
+ , groups +"/lst[3]//doc[2]/float[@name='id'][.='6.0']"
+ , groups +"/lst[3]//doc[2]/bool[@name='[elevated]'][.='false']"
+ );
+
+ } finally {
+ delete();
+ }
+ }
+
+ @Test
public void testTrieFieldType() throws Exception {
try {
init("schema.xml");