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 tes group `analysis` has been added so that it can later be
extended with all other optional language analyzers (which are currently
also not covered).

note that the CI currently needs to fetch the image from
`opensearchstaging` as 2.18.0 hasn't been released yet. the `hub` and
`ref` config can be removed once 2.18.0 has been released.

Signed-off-by: Ralph Ursprung <[email protected]>
  • Loading branch information
rursprung committed Oct 11, 2024
1 parent 49b7c68 commit 45270e5
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/test-spec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ jobs:
tests: routing
- version: 2.16.0
tests: snapshot
- version: 2.18.0
hub: opensearchstaging
ref: '@sha256:f311da085b968663fadf041bafc78b24dc21556f0726e625caf3560f7323a020'
tests: plugins/analysis
- version: 2.17.0
tests: plugins/streaming
- version: 2.17.0
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
36 changes: 36 additions & 0 deletions tests/plugins/analysis/plugins/phone.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
$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:
text: +41 60 555 12 34
response:
status: 200
payload:
tokens:
- token: 605551234

0 comments on commit 45270e5

Please sign in to comment.