Filtering support for sub-queries#305
Open
roosmaa wants to merge 3 commits into
Open
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 PR extends filtering support to also work with complex queries.
Resolves: #304
I added filtering support to the executeQuerySpec function, but I'm not sure if this approach is the desired one.
First, the most obvious change in behavior is that the filter function is now called multiple times for the simple cases where a single top-level filter function is getting passed in. In general it should be fine considering there are no promises in the public APIs to indicate that the filter function cannot be called more than once.
But what may be more severe consequence of doing it this way is that, at the executeQuerySpec() level and at search() top-level the scores associated with the documents may be different. If the users are filtering on stored fields, it doesn't matter, but maybe there are use-cases where filtering on the score is desired, in that case it would be a breaking change.
Let me know of your thoughts regarding this @lucaong, and I'll happily adjust the PR.