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

如何移除自定义ArangoSearch分析器生成的空字符串token

ArangoSearch自定义分析器空字符串Token修复方案

问题根因

当前链式堆叠多个独立delimiter分词器的配置逻辑存在缺陷:当文本中出现连续的已定义分隔符(比如测试用例里逗号后紧跟的空格、文本末尾的句点)时,两个相邻分隔符之间不存在有效字符,分词流程就会生成空字符串Token,多个独立的delimiter处理器默认不会自动过滤这类空值。

修复方法

二选一即可,优先推荐第一种:

  • 方案1(性能最优):将所有需要识别为分隔符的字符合并到同一个delimiter配置节点中。ArangoSearch的delimiter分析器原生支持传入多字符分隔符集合,处理时会自动跳过连续分隔符产生的空内容,不需要额外过滤。
  • 方案2(兼容现有链式结构):在所有delimiter处理节点之后、stem词干提取节点之前,新增一个stopwords类型的过滤节点,将空字符串加入停用词表直接过滤。

修正后配置(方案1)

配置中未加入连字符-,符合不把连字符作为分隔符的需求:

{
  "pipeline": [
    {
      "type": "norm",
      "properties": {
        "locale": "en.utf-8",
        "accent": false,
        "case": "lower",
        "stemming": false
      }
    },
    {
      "type": "delimiter",
      "properties": {
        "delimiter": " !.,;?[]{}()<>~@=&|\n"
      }
    },
    {
      "type": "stem",
      "properties": {
        "locale": "en.utf-8"
      }
    }
  ]
}

方案2补充配置

如果保留原有多delimiter的链式结构,在最后一个delimiter节点后插入以下配置即可过滤空串:

{"type": "stopwords", "properties": {"stopwords": [""]}}

验证效果

使用修正后的配置处理测试文本HYPNOS2, Aphrodite and other Microcontrollers.,输出Token列表为["hypnos2", "aphrodit", "and", "other", "microcontrol"],空字符串Token完全消除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:54:35