gsmiller commented on code in PR #11950:
URL: https://github.com/apache/lucene/pull/11950#discussion_r1029481972


##########
lucene/core/src/java/org/apache/lucene/document/BinaryRangeFieldRangeQuery.java:
##########
@@ -91,7 +92,11 @@ public Query rewrite(IndexSearcher indexSearcher) throws 
IOException {
   }
 
   private BinaryRangeDocValues getValues(LeafReader reader, String field) 
throws IOException {
-    BinaryDocValues binaryDocValues = reader.getBinaryDocValues(field);
+    FieldInfo info = reader.getFieldInfos().fieldInfo(field);
+    if (info == null) {
+      return null;
+    }
+    BinaryDocValues binaryDocValues = DocValues.getBinary(reader, field);

Review Comment:
   Actually, I suppose it depends if we want to throw an 
`IllegalArgumentException` if the field has been indexed but as a different 
type. `DocValues#getBinary` will do the type checking and throw. If we go with 
your suggestion, we'll just silently ignore the field (treating it the same as 
if it doesn't exist in the segment).
   
   I'd prefer we do the type checking. I think it makes more sense for users, 
and it's also consistent with other similar code paths. For example, 
`SortedNumericDocValuesField#newSlowRangeQuery` is a similar use-case, and 
relies on the factory methods for type checking.



-- 
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: issues-unsubscr...@lucene.apache.org

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


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to