How purecloudlabs/elasticsearch-phone works
Elasticsearch-Phone is an Elasticsearch analysis plugin for indexing and searching phone numbers, SIP URIs, and email addresses. Elasticsearch registers three analyzer providers: phone and phone-email produce indexing tokens, while phone-search performs lighter query-side normalization. Each analyzer builds a tokenizer that applies its term extractors; phone extraction handles prefixes, optional libphonenumber parsing, and number prefixes, while email extraction splits email components. The README documents intended index/search use. Source excerpts show analyzer construction and extraction calls; plugin-host invocation and runtime wiring beyond registration are not shown.
Main entry points: CustomAnalysisBinderProcessor.java Analyzer binder · PhoneEmailAnalyzer.java Phone-email analyzer · TermExtractorTokenizer.java Extractor tokenizer · TermExtractor.java Extractor contract
Components 14
Plugin registration
- Phone plugin
src/main/java/org/elasticsearch/plugins/analysis/phone/PhonePlugin.java - Analyzer binder
src/main/java/org/elasticsearch/plugins/analysis/phone/CustomAnalysisBinderProcessor.java - Phone provider
src/main/java/org/elasticsearch/plugins/analysis/phone/PhoneAnalyzerProvider.java - Phone-email provider
src/main/java/org/elasticsearch/plugins/analysis/phone/PhoneEmailAnalyzerProvider.java - Search provider
src/main/java/org/elasticsearch/plugins/analysis/phone/PhoneSearchAnalyzerProvider.java
Analyzer variants
- Phone analyzer
src/main/java/org/elasticsearch/index/analysis/PhoneAnalyzer.java - Phone-email analyzer
src/main/java/org/elasticsearch/index/analysis/PhoneEmailAnalyzer.java - Search analyzer
src/main/java/org/elasticsearch/index/analysis/PhoneSearchAnalyzer.java
Tokenization
- Extractor tokenizer
src/main/java/org/elasticsearch/index/analysis/TermExtractorTokenizer.java - Extractor contract
src/main/java/org/elasticsearch/index/analysis/TermExtractor.java - Phone term extraction
src/main/java/org/elasticsearch/index/analysis/PhoneTermExtractor.java - Email term extraction
src/main/java/org/elasticsearch/index/analysis/EmailTermExtractor.java - Search term extraction
src/main/java/org/elasticsearch/index/analysis/PhoneSearchTermExtractor.java
Other components
- Elasticsearch
Connections 21
- Phone plugin → Analyzer binder: installs processor
src/main/java/org/elasticsearch/plugins/analysis/phone/PhonePlugin.java - Analyzer binder → Phone provider: registers analyzer
src/main/java/org/elasticsearch/plugins/analysis/phone/CustomAnalysisBinderProcessor.java - Analyzer binder → Phone-email provider: registers analyzer
src/main/java/org/elasticsearch/plugins/analysis/phone/CustomAnalysisBinderProcessor.java - Analyzer binder → Search provider: registers analyzer
src/main/java/org/elasticsearch/plugins/analysis/phone/CustomAnalysisBinderProcessor.java - Phone provider → Phone analyzer: provides
src/main/java/org/elasticsearch/plugins/analysis/phone/PhoneAnalyzerProvider.java - Phone-email provider → Phone-email analyzer: provides
src/main/java/org/elasticsearch/plugins/analysis/phone/PhoneEmailAnalyzerProvider.java - Search provider → Search analyzer: provides
src/main/java/org/elasticsearch/plugins/analysis/phone/PhoneSearchAnalyzerProvider.java - Elasticsearch → Phone provider: configures indexing
README.md - Elasticsearch → Phone-email provider: configures indexing
README.md - Elasticsearch → Search provider: configures search
README.md - Phone analyzer → Extractor tokenizer: constructs
src/main/java/org/elasticsearch/index/analysis/PhoneAnalyzer.java - Phone analyzer → Phone term extraction: uses
src/main/java/org/elasticsearch/index/analysis/PhoneAnalyzer.java - Phone-email analyzer → Extractor tokenizer: constructs
src/main/java/org/elasticsearch/index/analysis/PhoneEmailAnalyzer.java - Phone-email analyzer → Phone term extraction: uses
src/main/java/org/elasticsearch/index/analysis/PhoneEmailAnalyzer.java - Phone-email analyzer → Email term extraction: uses
src/main/java/org/elasticsearch/index/analysis/PhoneEmailAnalyzer.java - Search analyzer → Extractor tokenizer: constructs
src/main/java/org/elasticsearch/index/analysis/PhoneSearchAnalyzer.java - Search analyzer → Search term extraction: uses
src/main/java/org/elasticsearch/index/analysis/PhoneSearchAnalyzer.java - Extractor tokenizer → Extractor contract: calls
src/main/java/org/elasticsearch/index/analysis/TermExtractorTokenizer.java - Phone term extraction → Extractor contract: implements
src/main/java/org/elasticsearch/index/analysis/PhoneTermExtractor.java - Email term extraction → Extractor contract: implements
src/main/java/org/elasticsearch/index/analysis/EmailTermExtractor.java - Search term extraction → Extractor contract: implements
src/main/java/org/elasticsearch/index/analysis/PhoneSearchTermExtractor.java