Pattern Tokenizer用于提取文件名

时间:2017-10-10 12:00:31

标签: regex elasticsearch tokenize

我想标记" a.b.c"进入ElasticSearch的{​​{1}}部分。我尝试了一些正则表达式,但更新令牌化器很乏味,而且我在正则表达式上非常糟糕,所以我要求帮助。

我已经尝试过这个公式,但他们并没有给我我想要的东西:

a, a.b, a.b.c, b.c, b, c

1 个答案:

答案 0 :(得分:2)

试试这个

PUT my_sample
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "my_tokenizer"
        }
      },
      "tokenizer": {
        "my_tokenizer": {
          "type": "path_hierarchy",
          "delimiter": ".",
          "replacement": "."
        }
      }
    }
  }
}

然后,

POST my_sample/_analyze
{
  "analyzer": "my_analyzer",
  "text": "a.b.c"
}

它将产生以下术语:

[ a.b.c., a.b., b.c., a., b., c. ]

然后你可以通过你的程序轻松处理它