mirror of https://github.com/apache/lucene.git
Revert "SOLR-10033: Provide a clear exception when attempting to facet with facet.mincount=0 over points fields"
This reverts commit 3a405971b9
.
This commit is contained in:
parent
59997091c8
commit
7d6c154fd9
|
@ -598,9 +598,6 @@ Other Changes
|
|||
|
||||
* SOLR-10847: Provide a clear exception when attempting to use the terms component with points fields.
|
||||
(hossman, Steve Rowe)
|
||||
|
||||
* SOLR-10033: Provide a clear exception when attempting to facet with facet.mincount=0 over points fields.
|
||||
(Steve Rowe)
|
||||
|
||||
* SOLR-9321: Remove deprecated methods of ClusterState. (Jason Gerlowski, ishan, Cao Manh Dat)
|
||||
|
||||
|
|
|
@ -43,7 +43,6 @@ import org.apache.lucene.util.CharsRefBuilder;
|
|||
import org.apache.lucene.util.NumericUtils;
|
||||
import org.apache.lucene.util.PriorityQueue;
|
||||
import org.apache.lucene.util.StringHelper;
|
||||
import org.apache.solr.common.SolrException;
|
||||
import org.apache.solr.common.params.FacetParams;
|
||||
import org.apache.solr.common.util.NamedList;
|
||||
import org.apache.solr.schema.FieldType;
|
||||
|
@ -179,11 +178,6 @@ final class NumericFacets {
|
|||
if (numericType == null) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
if (zeros && ft.isPointField()) {
|
||||
throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
|
||||
"Cannot use " + FacetParams.FACET_MINCOUNT + "=0 on field " + sf.getName() + " which is Points-based");
|
||||
}
|
||||
|
||||
zeros = zeros && !ft.isPointField() && sf.indexed(); // We don't return zeros when using PointFields or when index=false
|
||||
final List<LeafReaderContext> leaves = searcher.getIndexReader().leaves();
|
||||
|
||||
|
@ -413,18 +407,11 @@ final class NumericFacets {
|
|||
|
||||
private static NamedList<Integer> getCountsMultiValued(SolrIndexSearcher searcher, DocSet docs, String fieldName, int offset, int limit, int mincount, boolean missing, String sort) throws IOException {
|
||||
// If facet.mincount=0 with PointFields the only option is to get the values from DocValues
|
||||
// not currently supported. See SOLR-11174
|
||||
boolean zeros = mincount <= 0;
|
||||
// not currently supported. See SOLR-10033
|
||||
mincount = Math.max(mincount, 1);
|
||||
final SchemaField sf = searcher.getSchema().getField(fieldName);
|
||||
final FieldType ft = sf.getType();
|
||||
assert sf.multiValued();
|
||||
|
||||
if (zeros && ft.isPointField()) {
|
||||
throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
|
||||
"Cannot use " + FacetParams.FACET_MINCOUNT + "=0 on field " + sf.getName() + " which is Points-based");
|
||||
}
|
||||
|
||||
final List<LeafReaderContext> leaves = searcher.getIndexReader().leaves();
|
||||
|
||||
// 1. accumulate
|
||||
|
|
|
@ -27,7 +27,6 @@ import org.apache.lucene.index.Term;
|
|||
import org.apache.lucene.index.TermsEnum;
|
||||
import org.apache.lucene.util.BytesRef;
|
||||
import org.apache.solr.SolrTestCaseJ4;
|
||||
import org.apache.solr.common.SolrException;
|
||||
import org.apache.solr.common.params.FacetParams;
|
||||
import org.apache.solr.search.SolrIndexSearcher;
|
||||
import org.apache.solr.uninverting.DocTermOrds;
|
||||
|
@ -336,7 +335,7 @@ public class TestFaceting extends SolrTestCaseJ4 {
|
|||
|
||||
@Test
|
||||
public void testFacetSortWithMinCount0() {
|
||||
assumeFalse("facet.mincount=0 doesn't work with point fields (SOLR-11174) or single valued DV",
|
||||
assumeFalse("facet.mincount=0 doesn't work with point fields (SOLR-10033) or single valued DV",
|
||||
Boolean.getBoolean(NUMERIC_POINTS_SYSPROP) || Boolean.getBoolean(NUMERIC_DOCVALUES_SYSPROP));
|
||||
|
||||
assertU(adoc("id", "1", "f_td", "-420.126"));
|
||||
|
@ -357,31 +356,8 @@ public class TestFaceting extends SolrTestCaseJ4 {
|
|||
"//lst[@name='facet_fields']/lst[@name='f_td']/int[3][@name='-1.218']");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFacetOverPointFieldWithMinCount0() {
|
||||
String field = "f_" + new String[]{"i","l","f","d"}[random().nextInt(4)] + "_p";
|
||||
final SolrQueryRequest req = req("q", "id:1.0",
|
||||
FacetParams.FACET, "true",
|
||||
FacetParams.FACET_FIELD, field,
|
||||
FacetParams.FACET_MINCOUNT, "0",
|
||||
FacetParams.FACET_METHOD, FacetParams.FACET_METHOD_fc);
|
||||
Exception e = expectThrows(SolrException.class, () -> h.query(req));
|
||||
assertEquals(SolrException.ErrorCode.BAD_REQUEST.code, ((SolrException)e).code());
|
||||
assertTrue(e.getMessage().contains("Cannot use facet.mincount=0 on field " + field + " which is Points-based"));
|
||||
|
||||
String mvField = "f_" + new String[]{"is","ls","fs","ds"}[random().nextInt(4)] + "_p";
|
||||
final SolrQueryRequest req2 = req("q", "id:1.0",
|
||||
FacetParams.FACET, "true",
|
||||
FacetParams.FACET_FIELD, mvField,
|
||||
FacetParams.FACET_MINCOUNT, "0",
|
||||
FacetParams.FACET_METHOD, FacetParams.FACET_METHOD_fc);
|
||||
e = expectThrows(SolrException.class, () -> h.query(req2));
|
||||
assertEquals(SolrException.ErrorCode.BAD_REQUEST.code, ((SolrException)e).code());
|
||||
assertTrue(e.getMessage().contains("Cannot use facet.mincount=0 on field " + mvField + " which is Points-based"));
|
||||
}
|
||||
|
||||
|
||||
public void testSimpleFacetCountsWithMultipleConfigurationsForSameField() {
|
||||
public void testSimpleFacetCountsWithMultipleConfigurationsForSameField() {
|
||||
clearIndex();
|
||||
String fname = "trait_ss";
|
||||
assertU(adoc("id", "42",
|
||||
|
|
Loading…
Reference in New Issue