Skip to content
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

[Feature] Visitor design pattern in QueryBuilder #10110

Merged
merged 11 commits into from
Sep 21, 2023
Merged

[Feature] Visitor design pattern in QueryBuilder #10110

merged 11 commits into from
Sep 21, 2023

Conversation

vibrantvarun
Copy link
Member

@vibrantvarun vibrantvarun commented Sep 18, 2023

Description

This PR has an implementation of Visitor design pattern in QueryBuilder.java. This is a counterpart of what lucene already has a visit method. This will empower search request processors as now every plugin query builder or a query builder in OS can modify the search request.

Related Issues

Resolves #[Issue number to be closed when this PR is merged]
9986

Check List

  • New functionality includes testing.
    • All tests pass
  • New functionality has been documented.
    • New functionality has javadoc added
  • Commits are signed per the DCO using --signoff
  • Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@vibrantvarun
Copy link
Member Author

vibrantvarun commented Sep 18, 2023

@msfroh @navneet1v as discussed a PR for implementing visitor design pattern in QueryBuilder

cc: @vamshin

Signed-off-by: Varun Jain <varunudr@amazon.com>
Signed-off-by: Varun Jain <varunudr@amazon.com>
@github-actions
Copy link
Contributor

github-actions bot commented Sep 18, 2023

Compatibility status:

Checks if related components are compatible with change e9c81e1

Incompatible components

Incompatible components: [https://github.com/opensearch-project/k-nn.git]

Skipped components

Compatible components

Compatible components: [https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/custom-codecs.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/performance-analyzer-rca.git]

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

Copy link
Collaborator

@msfroh msfroh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, @vibrantvarun!

I'm going to wait for Gradle check to pass, retrying as needed.

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

Signed-off-by: Varun Jain <varunudr@amazon.com>
@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

  • RESULT: UNSTABLE ❕
  • TEST FAILURES:
      1 org.opensearch.snapshots.CloneSnapshotIT.testShallowCloneNameAvailability

Signed-off-by: Varun Jain <varunudr@amazon.com>
@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

@ryanbogan ryanbogan merged commit a63f8de into opensearch-project:main Sep 21, 2023
15 checks passed
@ryanbogan ryanbogan added the backport 2.x Backport to 2.x branch label Sep 21, 2023
@opensearch-trigger-bot
Copy link
Contributor

The backport to 2.x failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repository
cd $(git rev-parse --show-toplevel)
# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/OpenSearch/backport-2.x 2.x
# Navigate to the new working tree
pushd ../.worktrees/OpenSearch/backport-2.x
# Create a new branch
git switch --create backport/backport-10110-to-2.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 a63f8def960164117a57feb79911df4629415875
# Push it to GitHub
git push --set-upstream origin backport/backport-10110-to-2.x
# Go back to the original working tree
popd
# Delete the working tree
git worktree remove ../.worktrees/OpenSearch/backport-2.x

Then, create a pull request where the base branch is 2.x and the compare/head branch is backport/backport-10110-to-2.x.

@vibrantvarun vibrantvarun deleted the Visitor_Design_Pattern branch September 22, 2023 17:18
sarthakaggarwal97 pushed a commit to sarthakaggarwal97/OpenSearch that referenced this pull request Sep 24, 2023
…10110)

* Implementation of Visitor Design Pattern in QueryBuilder

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding Changelog

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding Changelog

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Comments addressed of michael

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding test case and some minor fixes in DisMaxQueryBuilder

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Modifying test cases and remove exeception

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding bool query builder test cases at clause level

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Fixing test case

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Additional test cases

Signed-off-by: Varun Jain <varunudr@amazon.com>

---------

Signed-off-by: Varun Jain <varunudr@amazon.com>
brusic pushed a commit to brusic/OpenSearch that referenced this pull request Sep 25, 2023
…10110)

* Implementation of Visitor Design Pattern in QueryBuilder

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding Changelog

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding Changelog

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Comments addressed of michael

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding test case and some minor fixes in DisMaxQueryBuilder

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Modifying test cases and remove exeception

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding bool query builder test cases at clause level

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Fixing test case

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Additional test cases

Signed-off-by: Varun Jain <varunudr@amazon.com>

---------

Signed-off-by: Varun Jain <varunudr@amazon.com>
Signed-off-by: Ivan Brusic <ivan.brusic@flocksafety.com>
vikasvb90 pushed a commit to vikasvb90/OpenSearch that referenced this pull request Oct 10, 2023
…10110)

* Implementation of Visitor Design Pattern in QueryBuilder

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding Changelog

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding Changelog

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Comments addressed of michael

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding test case and some minor fixes in DisMaxQueryBuilder

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Modifying test cases and remove exeception

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding bool query builder test cases at clause level

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Fixing test case

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Additional test cases

Signed-off-by: Varun Jain <varunudr@amazon.com>

---------

Signed-off-by: Varun Jain <varunudr@amazon.com>
shiv0408 pushed a commit to Gaurav614/OpenSearch that referenced this pull request Apr 25, 2024
…10110)

* Implementation of Visitor Design Pattern in QueryBuilder

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding Changelog

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding Changelog

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Comments addressed of michael

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding test case and some minor fixes in DisMaxQueryBuilder

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Modifying test cases and remove exeception

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Adding bool query builder test cases at clause level

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Fixing test case

Signed-off-by: Varun Jain <varunudr@amazon.com>

* Additional test cases

Signed-off-by: Varun Jain <varunudr@amazon.com>

---------

Signed-off-by: Varun Jain <varunudr@amazon.com>
Signed-off-by: Shivansh Arora <hishiv@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport 2.x Backport to 2.x branch backport-failed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants