🚌 The IK Analysis plugin integrates Lucene IK analyzer into Elasticsearch and OpenSearch, support customized dictionary.
17.5k
Stars
3.3k
Forks
18
Open issues
30
Contributors
AI Analysis
IK Analysis is a plugin that integrates the Lucene IK analyzer into Elasticsearch and OpenSearch, enabling Chinese language text analysis with customizable dictionaries. It is purpose-built for organizations requiring Chinese-language full-text search capabilities in these search platforms; it is not a general-purpose text analysis tool and does not serve use cases where English or other language analyzers are the primary need.
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
IK Analyzer brings Chinese word segmentation to Elasticsearch and OpenSearch with customizable dictionaries
analysis-ik integrates the Lucene IK analyzer into Elasticsearch and OpenSearch, solving the fundamental problem of Chinese text tokenization — standard whitespace-based tokenizers are useless for Chinese, Japanese, and other CJK languages that lack word boundaries. It offers two modes: ik_max_word (finest-grained segmentation) and ik_smart (coarser, semantically guided). Custom and hot-reloadable dictionaries allow domain-specific vocabulary without restarting the cluster. Built for any team running Elasticsearch or OpenSearch with Chinese-language content, it is effectively the default choice in that ecosystem.
Created in December 2011, IK Analysis predates much of the modern Elasticsearch plugin ecosystem. Originally a standalone Lucene project, it was adapted for Elasticsearch early in that platform's rise. Maintenance was taken over by INFINI Labs, ensuring continued support across Elasticsearch and OpenSearch version upgrades.
Growth was driven almost entirely by the explosion of Elasticsearch adoption in China during the 2013–2020 period. With 17,468 stars and 3,278 forks, it became the de facto standard for Chinese search. Growth is now slow (2 stars/week) — consistent with a mature, widely-deployed utility rather than a growing project seeking new users. Stewardship by INFINI Labs stabilized long-term maintenance after earlier periods of uncertainty.
Strong indirect adoption evidence: 17,468 stars and 3,278 forks place this among the most-starred Elasticsearch plugins globally. It is routinely referenced in Chinese-language developer communities, tutorials, and enterprise search stacks. INFINI Labs maintaining a dedicated release distribution endpoint (release.infinilabs.com) suggests active commercial and community usage at scale. Direct production case studies are not cited in the README, but adoption at scale is reasonably inferred from the repository's age, fork count, and ecosystem presence.
Appears to follow standard Elasticsearch plugin architecture — a JAR registered as an analysis plugin exposing named analyzers and tokenizers. Likely wraps the original IK Lucene analyzer with Elasticsearch-specific plugin lifecycle hooks. Configuration via XML file (IKAnalyzer.cfg.xml) supports local dictionary files and remote HTTP-based hot-reload endpoints using Last-Modified/ETag headers for change detection.
A CI test badge is present in the README (GitHub Actions workflow 'test.yml'), indicating automated testing exists. Specific coverage metrics are not documented in the README.
Last push was 2026-05-11, approximately 6 weeks before the evaluation date — indicating active maintenance. The project appears to track Elasticsearch and OpenSearch version releases, which is operationally critical for plugin compatibility. INFINI Labs provides a dedicated release server, suggesting organized release management.
ADOPT IF: you are building search over Chinese-language content on Elasticsearch or OpenSearch and need accurate word segmentation with domain-specific vocabulary support. AVOID IF: your use case is purely English or Latin-script languages, or you require deep NLP capabilities such as named entity recognition or semantic understanding beyond tokenization. MONITOR IF: you are on a fast-moving Elasticsearch version track, as plugin compatibility with new major versions can lag by weeks and may block upgrades.
Independent dimensions
Mainstream potential
4/10
Technical importance
8/10
Adoption evidence
8/10
- Plugin compatibility with new Elasticsearch/OpenSearch major versions can create upgrade blockers; historical gaps have occurred before INFINI Labs took over stewardship.
- The underlying IK segmentation algorithm is dictionary-based and does not leverage neural or statistical models, meaning segmentation quality depends heavily on dictionary completeness for domain-specific or neologistic vocabulary.
- Hot-reload dictionary feature relies on external HTTP servers returning correct cache headers; misconfiguration can silently fail to update dictionaries.
- INFINI Labs is a single organizational maintainer; if their priorities shift, the project could face delayed version support, though the Apache-2.0 license mitigates lock-in risk.
- No explicit documentation of scalability limits or behavior under high-throughput indexing scenarios is present in the README — performance characteristics at scale are not independently verified.
Likely to remain the default Chinese analyzer plugin for Elasticsearch/OpenSearch for the foreseeable future. Slow but stable growth. May face incremental pressure from neural/embedding-based search approaches that reduce reliance on explicit tokenization.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Language
- Java
- License
- Apache-2.0
- Last updated
- 1w ago
- Created
- 177mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
Similar repos
infinilabs/analysis-pinyin
A specialized Pinyin analysis plugin for Elasticsearch and OpenSearch that...
ankane/searchkick
Searchkick is a Ruby gem that adds intelligent full-text search capabilities to...
elastic/elasticsearch-labs
A curated collection of executable Python notebooks and sample applications...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
17.5k | +5 | Java | 8/10 | 1w ago |
|
|
3.1k | — | Java | 7/10 | 2mo ago |
|
|
6.7k | — | Ruby | 8/10 | 1mo ago |
|
|
1.1k | — | Jupyter Notebook | 8/10 | 20h ago |
|
|
3.5k | — | Java | 9/10 | 19h ago |
|
|
77.6k | — | Java | 9/10 | 35 min ago |
Ships with Elasticsearch by default; performs bigram tokenization (every two-character pair). Simpler but produces large indexes and poor precision for Chinese queries. IK is generally preferred for Chinese-specific use cases.
Official Elasticsearch plugin using a statistical Chinese segmentation model. Maintained by Elastic but with less community customization support and no hot-reload dictionary feature. IK is typically preferred in China-focused deployments.
Popular Chinese segmentation library used outside the Elasticsearch context. Can be integrated via custom pipelines but requires preprocessing rather than native Elasticsearch analyzer support. Different deployment model entirely.
More sophisticated NLP toolkit with deep learning-based segmentation options. Some community plugins exist for Elasticsearch, but they are less mature and harder to maintain across ES versions. IK remains simpler to operate.
OpenSearch bundles limited CJK support natively. IK fills the same gap in OpenSearch as it does in Elasticsearch, and the plugin explicitly supports both platforms — a practical advantage.