[ 
https://issues.apache.org/jira/browse/SOLR-16851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18096758#comment-18096758
 ] 

Serhiy Bzhezytskyy commented on SOLR-16851:
-------------------------------------------

I looked into doing this as the string follow-up to SOLR-16846 (which added 
IndexOrDocValuesQuery for PointFields), and benchmarked it before proposing a 
change.

Mirrored SOLR-16846's NumericSearch benchmark with a StringSearch one: 2M docs, 
a 20-term set query (field:(v1 v2 …) via the main parser, which routes through 
FieldType.getSetQuery), string field with vs. without docValues. 2 forks, 5 
warmup + 5 measurement iterations:
postings-only (TermInSetQuery)               6037 ops/s  (99% CI [5780, 6294])
indexed+docValues (IndexOrDocValues)  5276 ops/s  (99% CI [5215, 5337])

So for strings the docValues path is ~13% slower for this workload, and the 
intervals don't overlap — the opposite of the points case. This lines up with 
the Lucene discussion on the string/term variant 
([lucene#12089|https://github.com/apache/lucene/pull/12089]), where the 
conclusion was that field-level statistics aren't granular enough to reliably 
pick postings vs. docValues for term set queries, and the "self-optimizing" 
approach was dropped.

Based on this I don't think a blanket IndexOrDocValuesQuery for string set 
queries is a win — at least not without a workload where it clearly helps (very 
selective lead clause, high-cardinality field, etc.). Happy to share the 
benchmark if useful, or dig further if someone knows a case where it should pay 
off. Leaving the ticket open for that discussion.

> Use IndexOrDocValuesQuery for Set queries on string fields when docValues are 
> enabled
> -------------------------------------------------------------------------------------
>
>                 Key: SOLR-16851
>                 URL: https://issues.apache.org/jira/browse/SOLR-16851
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Tomas Eduardo Fernandez Lobbe
>            Priority: Minor
>
> Similar to SOLR-16846, we can have Set queries on string use 
> IndexOrDocValuesQuery when docValues are enabled



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to