You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ElasticSearch lowercase token filter失效问题排查求助

ElasticSearch自定义分词器配置问题修正

你的问题出在自定义分析器没有绑定小写过滤器。虽然你在analysis下写了"filter" : ["lowercase"],但ElasticSearch不会自动将这个过滤器关联到my_analyzer上,必须在分析器的配置里明确声明要使用的过滤器。

修正后的索引配置如下:

PUT test-index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "my_tokenizer",
          "filter": ["lowercase"]  // 这里添加过滤器绑定
        }
      },
      "tokenizer": {
        "my_tokenizer": {
          "type": "pattern",
          "pattern": "(?<!^)(?=[A-Z])"
        }
      }
    }
  }
}

重新执行你的测试请求:

POST test-index/_analyze
{
  "analyzer": "my_analyzer",
  "text": "SomeSideCar.jpg"
}

就能得到你预期的分词结果:

{
  "tokens": [
    {
      "token": "some",
      "start_offset": 0,
      "end_offset": 4,
      "type": "word",
      "position": 0
    },
    {
      "token": "side",
      "start_offset": 4,
      "end_offset": 8,
      "type": "word",
      "position": 1
    },
    {
      "token": "car.jpg",
      "start_offset": 8,
      "end_offset": 15,
      "type": "word",
      "position": 2
    }
  ]
}

自定义分析器的执行逻辑是字符过滤器(可选)→ 分词器 → 令牌过滤器,你之前只指定了分词器,漏掉了把小写过滤器加入到分析器的执行链里,所以分词后的结果没有被转成小写。

内容的提问来源于stack exchange,提问作者cah1r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:01:00