elasticsearch - anchor token 替换模式到 token 末尾

标签 elasticsearch elasticsearch-analyzers

根据docs这应该是不可能的

Regular expressions cannot be anchored to the beginning or end of a token


尽管如此,它似乎对我有用
GET /_analyze
{
  "tokenizer": "whitespace",
  "filter": [
    {
      "type": "pattern_replace",
      "pattern": "(dog)$",
      "replacement": "hot$1"
    }
  ],
  "text": "dog dogs"
}
退货
{
  "tokens" : [
    {
      "token" : "hotdog",
      "start_offset" : 0,
      "end_offset" : 3,
      "type" : "word",
      "position" : 0
    },
    {
      "token" : "dogs",
      "start_offset" : 4,
      "end_offset" : 8,
      "type" : "word",
      "position" : 1
    }
  ]
}
请注意,该模式 anchor 定在 token 的末尾,并且不会替换“dog s ”,因为它不是以“dog”结尾。
所以我的问题是:我丢失了某些东西还是可以安全使用(文档只是错误的)?

最佳答案

看来这是错误的文档,为此,Elasticsearch bug查看了 flex 代码,并且没有对 token 的开头或结尾进行特殊处理。
请引用用于此 token 过滤器的this ES code,它调用Lucene token 过滤器,并且在Elastic和Lucene代码级别均没有特殊处理。

关于elasticsearch - anchor token 替换模式到 token 末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64538891/

相关文章:

java - Elasticsearch Java api - 使用bulkProcessor部分更新文档

elasticsearch - preserve_original elasticsearch 中的原始标记

elasticsearch - 我可以通过 elasticsearch-template.json 设置 logstash 默认的 elasticsearch 映射吗

python - Django haystack 索引多对多字段,但如果有多个词则搜索失败

elasticsearch - Fluent-bit - 将 json 日志拆分为 Elasticsearch 中的结构化字段

elasticsearch - Elasticsearch Analyzer删除引用的句子

elasticsearch - 如何在Elasticsearch Spring数据的嵌套字段中添加分析器?

scala - elastic4s不退出

elasticsearch - Elasticsearch 全文搜索

elasticsearch - token 生成器是否可用于Elasticsearch中的索引编制或查询?