Allow Lucene Programatic Boolean Queries to be serialized through Builders specification #371
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.
The intention of this PR is to provide a workaround to the fact that Lucene queries are not serializabled. Due to this limitation, the linkByQuery function needs to serialize the original Lucene Query object using a String that represents the query in Lucene Query Syntax
When the original query is a complex Boolean Query, specially using multi-terms keywords in some of the clauses, the Lucene Query Parser is not able to reconstruct the same original query that you would be able to build programatically.
The workaround is based on serializable query builders that are used to compose the query in the same that you would do it with original Lucene query builders. The final query is only built when needed for searching, so the query is safely serialized within the builders