虽然我无法让它发挥作用,但我有一个看似非常简单的问题 . 我有一个令牌流的单词,我想删除任何单个单词的标记,例如 [the quick, brown, fox] 应输出为 [the quick] .

我已经尝试使用 pattern_capture 令牌过滤器并使用了许多类型的模式,但它只生成新的令牌,并且不会删除旧的令牌 .

这是我构建的分析仪(为清晰起见缩写)

"analyzer": {
  "job_analyzer": {
      "type": "custom",
      "tokenizer": "whitespace",
      "char_filter": [
        "some_custom_char_filter"
      ],
      "filter": [
        other filters....,
        "dash_drop",
        "trim",
        "unique",
        "drop_single_word"
      ]
    }
  },
  "char_filter": {...},
  "filter": {
    "dash_drop": {
      "type": "pattern_capture",
      "preserve_original": false,
      "patterns": [
          "([^-]+)\\s?(?!-.+)",
          "- (.+)"
        ]
    },
    "drop_single_word": {
      "type": "pattern_capture",
      "preserve_original": false,
      "patterns": [**nothing here works**]
    }
  }
}

我知道我正在使用 whitespace tokenzier将句子分解为单词,但这里没有显示使用 shingles 来创建新的nGrams .

dash_drop 过滤器的用途是将 - 的句子拆分为令牌而不使用 - ,例如: my house - my rules 将拆分为 [my house, my rules] .

任何帮助都非常有用 .