-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Add remove_by_pattern ingest processor #11920
Add remove_by_pattern ingest processor #11920
Conversation
Signed-off-by: Gao Binlong <[email protected]>
Signed-off-by: Gao Binlong <[email protected]>
Compatibility status:Checks if related components are compatible with change cf3722d Incompatible componentsIncompatible components: [https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/performance-analyzer-rca.git] Skipped componentsCompatible componentsCompatible components: [https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git, https://github.com/opensearch-project/custom-codecs.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/geospatial.git] |
❕ Gradle check result for 00054dd: UNSTABLE
Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure. |
❕ Gradle check result for 4ea2323: UNSTABLE
Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure. |
Signed-off-by: Gao Binlong <[email protected]>
❕ Gradle check result for 96298c1: UNSTABLE
Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure. |
Hi @deshsidd , I've changed some code according to your comments, please help to take a second look, thanks! |
modules/ingest-common/src/main/java/org/opensearch/ingest/common/RemoveByPatternProcessor.java
Outdated
Show resolved
Hide resolved
modules/ingest-common/src/main/java/org/opensearch/ingest/common/RemoveByPatternProcessor.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Gao Binlong <[email protected]>
❕ Gradle check result for cf3722d: UNSTABLE
Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure. |
modules/ingest-common/src/main/java/org/opensearch/ingest/common/RemoveByPatternProcessor.java
Show resolved
Hide resolved
modules/ingest-common/src/main/java/org/opensearch/ingest/common/RemoveByPatternProcessor.java
Show resolved
Hide resolved
@msfroh could this PR be approved now? This PR targets for 2.12.0, so we want to get it merged before the code freeze date. The document PR is ready. |
The backport to
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-11920-to-2.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 8d54278cc5e2b9b73c0825cc430747f03ed96349
# Push it to GitHub
git push --set-upstream origin backport/backport-11920-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 |
* Add remove_by_pattern ingest processor * Modify change log * Remove some duplicated checks * Add more yml test case * Fix typo --------- Signed-off-by: Gao Binlong <[email protected]> (cherry picked from commit 8d54278)
* Add remove_by_pattern ingest processor * Modify change log * Remove some duplicated checks * Add more yml test case * Fix typo --------- Signed-off-by: Gao Binlong <[email protected]> (cherry picked from commit 8d54278)
* Add remove_by_pattern ingest processor * Modify change log * Remove some duplicated checks * Add more yml test case * Fix typo --------- Signed-off-by: Gao Binlong <[email protected]> (cherry picked from commit 8d54278)
* Add remove_by_pattern ingest processor * Modify change log * Remove some duplicated checks * Add more yml test case * Fix typo --------- Signed-off-by: Gao Binlong <[email protected]> (cherry picked from commit 8d54278)
* Add remove_by_pattern ingest processor * Modify change log * Remove some duplicated checks * Add more yml test case * Fix typo --------- Signed-off-by: Gao Binlong <[email protected]>
* Add remove_by_pattern ingest processor * Modify change log * Remove some duplicated checks * Add more yml test case * Fix typo --------- Signed-off-by: Gao Binlong <[email protected]>
* Add remove_by_pattern ingest processor * Modify change log * Remove some duplicated checks * Add more yml test case * Fix typo --------- Signed-off-by: Gao Binlong <[email protected]> Signed-off-by: Shivansh Arora <[email protected]>
Description
Inspired by #10967, this PR adds a new ingest processor called
remove_by_pattern processor
which supports removing fields by field name patterns like a*, *b, there are two main parameters in this processor, and they are mutually exclusive:field_pattern
: optional, single value or array, support wildcard pattern likea*
,*b
, ora*b
, fields match the pattern will be removedexclude_field_pattern
: optional, single value or array, fields do not match the pattern will be removedThis processor doesn't touch any metadata fields in the document like
_index
,_id
, if users want to remove some metadata fields, they can use the remove ingest processor, and the validation for field name patterns is same to the index patterns when creating index template, starting with_
is not allowed.In addition, this processor only targets for root level fields in the document, if users want to remove some nested fields, they can use
remove
processor to remove the fields by specifying the field names completely.Here is an example:
In addition, why we don't support filed name patterns in the existing remove ingest processor? That's because field names can be
a*
orb*
, so we need to add extra two parameters likefield_pattern
andexclude_filed_pattern
to the remove ingest processor, which makes the usage complicated and confuses users, a single processor is better than that solution.Related Issues
#1578
Check List
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.