- Notifications
You must be signed in to change notification settings - Fork 25.6k
Add plumbing to check cluster features in SearchSourceBuilder #105417
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
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
This change adds an RRFRetrieverBuilder using the same strategy as ClassicRetrieverBuilder where we extract the parsed request body into a SearchSourceBuilder.
This adds an initial linear combination retriever using a similar strategy to RRF. This prototype will allow us to cover all existing use cases for standard search, and should make it easier to implement retrievers at more than a superficial level.
This change does the following: * renames the classic retriever to standard retriever * adds support for (pre) filter to the standard retriever * adds yaml tests for the standard retriever that covers all of the parse fields
This change removes all of the serialization code from retrievers since these will only be used as x- content parsers extracting values into the SearchSourceBuilder. This drastically reduces the test coverage area required. This change also removes post filter from the standard retriever for now as a post filter may need to apply to all returned documents in a compound query. Finally, this adds some additional checks for values that should not be shared between global values and retriever values.
This change adds yaml tests for the rrf retriever. This also fixes a bug that will allow knn retrievers to add their knn query as an addition to the current knn queries as opposed to overwriting it. This only applies to compound retrievers. This also adds a gate rrf platinum licensing.
Pinging @elastic/es-search (Team:Search) |
mayya-sharipova approved these changes Feb 12, 2024
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.
@jdconrad Thanks Jack, this LGTM
javanna approved these changes Feb 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
>refactoring :Search/Search Search-related issues that do not fall into other categories Team:Search Meta label for search team v8.13.0
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
This change adds additional plumbing to pipe through the available cluster features into
SearchSourceBuilder
. A number of different APIs useSearchSourceBuilder
so they had to make this available through their parsers as well often through ParserContext. This change is largely mechanical passing a Predicate into existing REST actions to check for feature availability.Note that this change was pulled mostly from this PR (#105040).