如何从Elasticsearch术语向量中删除所有数字?

gwo2fgha  于 2022-11-28  发布在  ElasticSearch
关注(0)|答案(1)|浏览(139)

我如何从Elasticsearch词条向量中删除所有数字?我基本上希望词条向量中只有真实的的文本/单词,现在是数字或无效字符串。
下面是我的索引定义:

{
    "mappings": {
        "_source": {
            "enabled": true
        },
        "properties": {
            "attachment.content": {
                "analyzer": "english_analyzer",
                "term_vector": "yes",
                "type": "text"
            },
            "class": {
                "type": "integer"
            },
            "label": {
                "type": "integer"
            }
        }
    },
    "settings": {
        "analysis": {
            "analyzer": {
                "english_analyzer": {
                    "filter": [
                        "english_possessive_stemmer",
                        "lowercase",
                        "english_stop",
                        "english_stemmer"
                    ],
                    "tokenizer": "standard",
                    "type": "custom"
                }
            },
            "filter": {
                "english_possessive_stemmer": {
                    "language": "possessive_english",
                    "type": "stemmer"
                },
                "english_stemmer": {
                    "language": "english",
                    "type": "stemmer"
                },
                "english_stop": {
                    "stopwords": "_english_",
                    "type": "stop"
                }
            }
        },
        "number_of_shards": 1
    }
}

我尝试了一个条件令牌过滤器,如下所示:

{
  "type": "condition",
  "filter": [ "remove" ],
  "script": {
    "source": "token.getType() == '<NUM>'"
  }
}

但是如果条件为真,我不知道如何删除标记。
1.是否有一个过滤器可以从术语向量中删除标记,或者有更好的方法?
1.在哪里可以找到有关条件脚本的“源”部分的文档?
谢谢你的帮助

5tmbdcev

5tmbdcev1#

您需要在过滤器数组中包含Keep Token filter,并且只保留<ALPHANUM>标记

相关问题