首页 > 解决方案 > Elasticsearch:自定义令牌过滤器

问题描述

由于没有关于该主题的文档,因此理解如何在 Java 中从头开始实现自定义令牌过滤器插件非常复杂。

我想要一个分析器过滤器,它只返回例如数字的标记。

任何想法?

标签: elasticsearchelasticsearch-6elasticsearch-6.8

解决方案


现有的过滤器可以做到这一点。例如,keep_types令牌过滤器可以做到这一点。

如果您利用该<NUM>类型,您的自定义标记过滤器将只允许数字标记通过并过滤掉所有其他标记。

GET _analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "keep_types",
      "types": [ "<NUM>" ]
    }
  ],
  "text": "1 quick fox 2 lazy dogs"
}

结果:

[1, 2]

pattern_capture您也可以使用令牌过滤器获得类似的结果。

但是如果你真的想走 Java 的路,那么你最好是克隆一个现有的分析插件并自己动手。


推荐阅读