From 1c46b692a8bf573010d7c154659ee3e56752a9bb Mon Sep 17 00:00:00 2001 From: Ralph Ursprung <39383228+rursprung@users.noreply.github.com> Date: Thu, 14 Nov 2024 17:34:34 +0100 Subject: [PATCH] add phone number analysis plugin (#609) this is part of opensearch-project/OpenSearch#11326. the actual implementation was done opensearch-project/OpenSearch#15915. see the commit message on the PR for further details. the new test group `analysis` has been added so that it can later be extended with all other optional language analyzers (which are currently also not covered). Signed-off-by: Ralph Ursprung --- CHANGELOG.md | 1 + spec/schemas/_common.analysis.yaml | 12 ++++++ tests/plugins/analysis/Dockerfile | 1 + .../indices/analyze/analyzer/phone.yaml | 38 +++++++++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 tests/plugins/analysis/indices/analyze/analyzer/phone.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b912b2fe..5edd85dcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -136,6 +136,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Added a spec style checker [#620](https://github.com/opensearch-project/opensearch-api-specification/pull/620). - Added `remote_store` to node `Stats` ([#643](https://github.com/opensearch-project/opensearch-api-specification/pull/643)) - Added `/_cluster/stats/{metric}/nodes/{node_id}` and `/_cluster/stats/{metric}/{index_metric}/nodes/{node_id}` ([#639](https://github.com/opensearch-project/opensearch-api-specification/pull/639)) +- Added `PhoneAnalyzer` from `analysis-phonenumber` plugin ([#609](https://github.com/opensearch-project/opensearch-api-specification/pull/609)) ### Changed diff --git a/spec/schemas/_common.analysis.yaml b/spec/schemas/_common.analysis.yaml index 9cae913b6..07be175e7 100644 --- a/spec/schemas/_common.analysis.yaml +++ b/spec/schemas/_common.analysis.yaml @@ -27,6 +27,7 @@ components: - $ref: '#/components/schemas/DutchAnalyzer' - $ref: '#/components/schemas/SmartcnAnalyzer' - $ref: '#/components/schemas/CjkAnalyzer' + - $ref: '#/components/schemas/PhoneAnalyzer' CustomAnalyzer: type: object properties: @@ -367,6 +368,17 @@ components: $ref: '#/components/schemas/StopWords' stopwords_path: type: string + PhoneAnalyzer: + type: object + properties: + type: + type: string + enum: + - phone + - phone-search + phone-region: + type: string + description: Optional ISO 3166 country code, defaults to "ZZ" (unknown region). CharFilter: oneOf: - title: name diff --git a/tests/plugins/analysis/Dockerfile b/tests/plugins/analysis/Dockerfile index aa43b705b..b45c0aef9 100644 --- a/tests/plugins/analysis/Dockerfile +++ b/tests/plugins/analysis/Dockerfile @@ -4,3 +4,4 @@ ARG OPENSEARCH_DOCKER_REF FROM ${OPENSEARCH_DOCKER_HUB_PROJECT}/opensearch:${OPENSEARCH_VERSION}${OPENSEARCH_DOCKER_REF} RUN ./bin/opensearch-plugin install -b analysis-icu +RUN ./bin/opensearch-plugin install -b analysis-phonenumber diff --git a/tests/plugins/analysis/indices/analyze/analyzer/phone.yaml b/tests/plugins/analysis/indices/analyze/analyzer/phone.yaml new file mode 100644 index 000000000..528fb6ea9 --- /dev/null +++ b/tests/plugins/analysis/indices/analyze/analyzer/phone.yaml @@ -0,0 +1,38 @@ +$schema: ../../../../../../json_schemas/test_story.schema.yaml + +description: Test /{index}/_analyze for the phone and phone-search analyzers. +prologues: + - path: /example-phone + method: PUT + request: + payload: + settings: + index: + analysis: + analyzer: + phone-ch: + type: phone + phone-region: CH + phone-search-ch: + type: phone-search + phone-region: CH +epilogues: + - path: /example-phone + method: DELETE + status: [200, 404] +chapters: + - synopsis: Analyze phone number. + path: /{index}/_analyze + method: POST + parameters: + index: example-phone + request: + payload: + analyzer: phone-ch + text: '+41 60 555 12 34' + response: + status: 200 + payload: + tokens: + - token: '+41 60 555 12 34' + - token: '6055512'