Skip to content

Commit

Permalink
add phone number analysis plugin
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
rursprung committed Nov 8, 2024
1 parent e41257a commit 250268b
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/test-spec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ jobs:
tests: routing
- version: 2.16.0
tests: snapshot
- version: 2.18.0
tests: plugins/analysis
- version: 2.17.0
tests: plugins/streaming
- version: 2.17.0
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- Added API spec for `adjust_pure_negative` for bool queries ([#641](https://github.com/opensearch-project/opensearch-api-specification/pull/641))
- 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 documentation & test for `analysis-phonenumber` plugin ([#609](https://github.com/opensearch-project/opensearch-api-specification/pull/609))

### Changed

Expand Down
12 changes: 12 additions & 0 deletions spec/schemas/_common.analysis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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
Expand Down
6 changes: 6 additions & 0 deletions tests/plugins/analysis/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ARG OPENSEARCH_DOCKER_HUB_PROJECT
ARG OPENSEARCH_VERSION
ARG OPENSEARCH_DOCKER_REF

FROM ${OPENSEARCH_DOCKER_HUB_PROJECT}/opensearch:${OPENSEARCH_VERSION}${OPENSEARCH_DOCKER_REF}
RUN ./bin/opensearch-plugin install -b analysis-phonenumber
17 changes: 17 additions & 0 deletions tests/plugins/analysis/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
version: '3'

services:
opensearch-cluster:
build:
context: .
args:
- OPENSEARCH_DOCKER_HUB_PROJECT=${OPENSEARCH_DOCKER_HUB_PROJECT:-opensearchproject}
- OPENSEARCH_DOCKER_REF=${OPENSEARCH_DOCKER_REF}
- OPENSEARCH_VERSION=${OPENSEARCH_VERSION:-latest}
ports:
- 9200:9200
- 9600:9600
environment:
- OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD:-myStrongPassword123!}
- OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS}
- discovery.type=single-node
38 changes: 38 additions & 0 deletions tests/plugins/analysis/indices/analyze/analyzer/phone.yaml
Original file line number Diff line number Diff line change
@@ -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:
analyzer: phone-ch
index: example-phone
request:
payload:
text: +41 60 555 12 34
response:
status: 200
payload:
tokens:
- token: +41 60 555 12 34
- token: 6055512

0 comments on commit 250268b

Please sign in to comment.