elasticsearch,Regex,elasticsearch" /> elasticsearch,Regex,elasticsearch" />

Regex Elasticsearch令牌过滤器,用于删除带有单个单词的令牌

Regex Elasticsearch令牌过滤器,用于删除带有单个单词的令牌,regex,elasticsearch,Regex,elasticsearch,我有一个看起来很简单的问题,虽然我不能让它工作。 我有一个单词的标记流,我想删除任何单个单词的标记,例如[快速、棕色、福克斯]应作为[快速]输出 我尝试过使用pattern\u capturetoken过滤器,并使用了许多类型的模式,但它只生成新的标记,不删除旧的标记 这是我构建的分析器(为了清晰起见缩写) 我知道我正在使用一个空白标记器将句子分解成单词,但这里没有显示使用木瓦来创建新的ngram dash\u drop过滤器用于将带有-的句子拆分为不带-的标记,例如:my house-my r

我有一个看起来很简单的问题,虽然我不能让它工作。 我有一个单词的标记流,我想删除任何单个单词的标记,例如
[快速、棕色、福克斯]
应作为
[快速]
输出

我尝试过使用
pattern\u capture
token过滤器,并使用了许多类型的模式,但它只生成新的标记,不删除旧的标记

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

我知道我正在使用一个
空白
标记器将句子分解成单词,但这里没有显示使用
木瓦
来创建新的ngram

dash\u drop
过滤器用于将带有
-
的句子拆分为不带
-
的标记,例如:
my house-my rules
将拆分为
[my house,my rules]


任何帮助都非常有用。

要匹配没有空格的字符串,您可以使用
^[^]+$
(或者在Lucene regex中使用
[^]+
)谢谢@WiktorStribiżew,但是我看到
模式捕获
只添加了新的标记,不会删除不匹配的标记。我应该如何移除它们?水流是如何进入ES的?你能发布你的全部地图吗?@sramalingam24对不起,我不能。但是你能澄清你需要知道什么吗?如果你的意思是我使用logstash,那么不,我只需要它来分析单个句子
"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**]
    }
  }
}