-
Notifications
You must be signed in to change notification settings - Fork 1.3k
KeywordField.newSetQuery() to reuse prefixed terms in IndexOrDocValuesQuery #14435
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
| return TermInSetQuery.newIndexOrDocValuesQuery( | ||
| MultiTermQuery.CONSTANT_SCORE_BLENDED_REWRITE, field, values); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably we can use TermInSetQuery.newIndexOrDocValuesQuery(field, values) here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right. Just want to make it explicit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then we don't need that method, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would agree with this. KeywordField#newSetQuery is the convenience method, so it's nice to not have to pass a rewrite, TermInSetQuery#newIndexOrDocValuesQuery is the expert method, and experts can figure out how they want their multi-term queries to be rewritten.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should remove the unused method TermInSetQuery#newIndexOrDocValuesQuery(String field, Collection<BytesRef> terms) in that case, as anyone invoking TermInSetQuery#newIndexOrDocValuesQuery should use the expert method TermInSetQuery#newIndexOrDocValuesQuery(RewriteMethod indexRewriteMethod, String field, Collection<BytesRef> terms)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok. Got it. Since we add something, let's add as least as possible.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for making the change. I know its minor, but important for keeping it clean!
| return TermInSetQuery.newIndexOrDocValuesQuery( | ||
| MultiTermQuery.CONSTANT_SCORE_BLENDED_REWRITE, field, values); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would agree with this. KeywordField#newSetQuery is the convenience method, so it's nice to not have to pass a rewrite, TermInSetQuery#newIndexOrDocValuesQuery is the expert method, and experts can figure out how they want their multi-term queries to be rewritten.
…sQuery (apache#14435) * KeywordField.newSetQuery() reuses prefixed terms. fix apache#14425
fix #14425
Description