作者来自 Elasticsearch Lily Adler一个开源 Elasticsearch 9.x 分析器插件通过在分析链中对 token 进行词形还原改善 Hebrew 搜索以提高对 Hebrew 形态的召回率。Elasticsearch 拥有丰富的新功能帮助你为你的使用场景构建最佳搜索解决方案。在我们关于构建现代 Search AI 体验的实操 webinar 中了解如何将这些功能付诸实践。你也可以现在开始免费 cloud 试用或在本地机器上试用 Elastic。Hebrew 在形态上非常丰富前缀、词形变化和附着词使得精确 token 搜索脆弱。该项目提供了一个开源 Elasticsearch 9.x 的 Hebrew 分析器插件在分析链中执行神经词形还原使用嵌入的 DictaBERT 模型并通过 ONNX Runtime 以 INT8 量化模型在进程中执行。快速开始下载相关版本或构建并安装Linux 构建脚本会生成与 Elasticsearch 兼容的 zip./scripts/build_plugin_linux.sh在 Elasticsearch 中安装/path/to/elasticsearch/bin/elasticsearch-plugin install file:///path/to/heb-lemmas-embedded-plugin-ES_VERSION.zip测试curl -k -X POST https://localhost:9200/_analyze \ -H Content-Type: application/json \ -u elastic:password \ -d {tokenizer:whitespace,filter:[heb_lemmas,heb_stopwords],text:הילדים אוכלים את הבננות}为什么 Hebrew 搜索不同Hebrew 在形态上非常丰富前缀、后缀、词形变化和附着词都会合并为单一的表面形式。这使得简单的 tokenization 不足。没有真正的词形还原搜索质量会下降用户可能因为形式的简单变化而错过相关结果。该项目通过将 Hebrew 词形还原模型嵌入分析器本身解决了这个问题使每个 token 在索引和查询前都通过神经模型处理。示例用户可能搜索词干 “בית”house但文档可能包含ביתa houseבביתin the houseלביתto the houseבבתיםin housesלבתיםto houses没有词形还原时这些会成为不同的表面 token词形还原会将它们规范化到相同的词干בית提高召回率这个插件的功能该分析器不是依赖规则的词干提取而是在 Elasticsearch 分析链中运行 Hebrew 词形还原模型为每个 token 输出一个规范化的词干。因为模型是神经网络它可以在每个分析段中利用局部上下文在模糊情况下选择合适的词干 —— 同时仍生成适合索引和查询的稳定 token。该分析器在 Elasticsearch 内运行 Hebrew 词形还原模型。为 Hebrew 文本生成更好的规范化 token。支持停用词和标准分析器管道。结果快速、可靠的词形还原该分析器针对实际吞吐量进行了优化使用 ONNX Runtime 进行进程内推理。INT8 量化模型以降低延迟和内存占用。通过 Java Foreign Function InterfaceFFI实现高性能原生推理。结果快速、可靠的词形还原操作行为可预测。为了评估性能我们在 Docker 容器4 核12 GB RAM中对 100 万条大文档5.7 GB 数据进行基准测试数据来源于 Hebrew Wikipedia 数据集。结果如下Metric (search)TaskValueUnitMin throughputhebrew-query-search409.75ops/sMean throughputhebrew-query-search490.65ops/sMedian throughputhebrew-query-search491.85ops/sMax throughputhebrew-query-search496.13ops/s50th percentile latencyhebrew-query-search7.02242ms90th percentile latencyhebrew-query-search10.7338ms99th percentile latencyhebrew-query-search19.0406ms99.9th percentile latencyhebrew-query-search27.165ms50th percentile service timehebrew-query-search7.02242ms90th percentile service timehebrew-query-search10.7338ms99th percentile service timehebrew-query-search19.0406ms99.9th percentile service timehebrew-query-search27.165msError ratehebrew-query-search0%开源且兼容 Elastic该插件完全开源可在以下环境中使用Elastic 开源发行版Elastic Cloud你可以自行构建也可以下载预构建版本并像安装其他插件一样安装。要将分析器插件上传到 Elastic Cloud请在 Elastic Cloud 控制台中导航到Extensions部分然后进行上传。鸣谢该项目是 Korra ai Hebrew 分析插件MIT的一个 fork由 Korra.ai 实现并在 MAFAT 和以色列创新局领导的国家 NLP 项目资助和指导下完成。此 fork 关注 Elasticsearch 9.x 兼容性并通过 ONNX Runtime 完全在进程内运行词形还原使用 INT8 量化模型和捆绑的 Hebrew 停用词。词形还原由 DictaBERT dicta-il/dictabert-lexCC‑BY‑4.0提供支持。特别感谢 Dicta 团队为社区提供高质量的 Hebrew 自然语言处理NLP模型。链接GitHub 仓库版本发布原文https://www.elastic.co/search-labs/blog/elasticsearch-lemmatization-hebrew-analyzer