syahra712 opened a new pull request, #25:
URL: https://github.com/apache/solr-orbit-workloads/pull/25
The `large_terms`, `large_filtered_terms` and `large_prohibited_terms`
operations build a `{!terms f=name_raw}` query by joining all of `terms.txt`
with commas. 152 of the 45,586 place names contain a comma themselves, for
example `Schenkon, Tannberg` and `Chancy, village`.
`TermsQParserPlugin` splits the value strictly on its separator, `,` by
default, and only trims when the separator is a space
([source](https://github.com/apache/solr/blob/main/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java)).
So each of those names reaches Solr as two values, such as `Schenkon` and `
Tannberg` with a leading space. Neither can match the `name_raw` `StrField`. In
the original workload the terms query took a list, so these names were sent
whole.
This joins the terms on `|`, which never occurs in `terms.txt`, and passes
`separator="|"` to the parser. All three param sources share the new prefix.
Checked by building each param source's query and splitting it the way
`TermsQParserPlugin` does:
| | values sent | values that are not a place name |
|---|---|---|
| main | 45,739 | 299 |
| this PR | 45,587 | 0 |
The extra value in both rows is the random cache-buster number. The repo has
no tests yet (#14), so I haven't added one, and I haven't run this against a
live Solr.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]