Elasticsearch:自定义令牌过滤器

Elasticsearch: Custom Token Filter

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

我想要一个分析器过滤器,它 returns 只有数字标记。

有什么想法吗?

现有过滤器可以执行此操作。例如 keep_types token filter 可以做到这一点。

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

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

结果:

[1, 2]

您也可以使用 pattern_capture token filter 获得类似的结果。

但是如果你真的想走 Java 的路,那么你最好是克隆一个 existing analysis plugin 然后自己动手。