In some specific cases, some conditional clauses on unindexed field will be ignored
- for query like, q=A:1 OR B:1 OR A:2 OR B:2
if field B is not indexed(but docValues="true"), "B:1" will be lost.
- but if you write query like, q=A:1 OR A:2 OR B:1 OR B:2,
it will work perfect.
the only difference of two queries is that they are wrote in different orders.
one is ABAB, another is AABB.
steps of reproduce
you can easily reproduce this problem on a solr collection with _default configset and exampledocs/books.csv data.
- create a _default collection
- post books.csv.
- run followed query.
- query1: http://localhost:8983/solr/books/select?q=+(name_str:Foundation+OR+cat:book+OR+name_str:Jhereg+OR+cat:cd)&debug=query
- query2: http://localhost:8983/solr/books/select?q=+(name_str:Foundation+OR+name_str:Jhereg+OR+cat:book+OR+cat:cd)&debug=query
- then you can find the parsedqueries are different.
- query1. ("name_str:Foundation" is lost.)
- query2. ("name_str:Foundation" isn't lost.)