Elasticsearch:自定义令牌过滤器

时间:2020-10-21 22:12:59

标签: elasticsearch elasticsearch-6 elasticsearch-6.8

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

我想获得一个分析器过滤器,该过滤器仅返回例如数字的令牌。

有什么主意吗?

1 个答案:

答案 0 :(得分:1)

现有的过滤器可以执行此操作。例如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并自己滚动。