【问题标题】:How to validate data with elasticsearch while indexing如何在索引时使用弹性搜索验证数据
【发布时间】:2021-02-10 11:55:48
【问题描述】:

我需要防止某些具有“null”(null 作为字符串)和""(空字符串)等值的字段在 Elasticsearch 中被编入索引,即我应该能够获取不包含这些值的文档_source 字段中的字段。

索引时映射中是否需要任何设置,例如在字段上使用自定义分析器?

P.S:- 我使用的是 elasticsearch 7.6.1

我尝试了以下答案,但这就是它不起作用的原因-

{  "settings": {
"number_of_shards": "5",
"analysis": {
  "normalizer": {
    "my_normalizer": {
      "char_filter": [
        {
          "type": "mapping",
          "mappings": [
            "null =>",
            "\"\"\" =>"
          ]
        }
      ],
      "filter": [
        "uppercase"
      ],
      "type": "custom"
    }
  }
},
"number_of_replicas": "1"}}

响应错误 - 序列化设置中只允许使用值列表

即使我尝试了以下设置,我也没有得到预期的结果:

{  "settings": {
"number_of_shards": "5",
"analysis": {
  "char_filter": {
    "my_filter": {
      "type": "mapping",
      "mappings": [
        "null =>",
        "\"\"\" =>"
      ]
    }
  },
  "normalizer": {
    "my_normalizer": {
      "char_filter": [
        "my_filter"
      ],
      "filter": [
        "uppercase"
      ],
      "type": "custom"
    }
  }
},
"number_of_replicas": "1"}}

请求 - GET indexname/_analyze

{"normalizer":"my_normalizer","text":"null"}

响应 -

{
"tokens": [
    {
        "token": "",
        "start_offset": 4,
        "end_offset": 4,
        "type": "word",
        "position": 0
    }
]

}

预期响应 -

{
"tokens": []
}

【问题讨论】:

  • 请告诉我它是否有效?如果是,请不要忘记投票并接受答案

标签: elasticsearch elasticsearch-mapping


【解决方案1】:

在您的分析器定义中使用mapping char filter,您可以实现它,下面是工作示例。

分析 API

{
  "tokenizer": "standard",
  "char_filter": [
    {
      "type": "mapping",
      "mappings": [
        "null =>",
        "\"\"\" =>"
      ]
    }
  ],
  "text": "null" or "" --> note this
}

并返回令牌

{
    "tokens": []
}

【讨论】:

  • 这可能是学生作业,没有尝试过。请在用户看到解决方案之前删除答案。 EOR。
  • 这没有帮助
  • @Trupti 哇,你只是说没有帮助,我不应该回答,因为其他用户和社区关闭了你的问题,你也懒得解释你的问题以及为什么我的解决方案没有不工作:)
  • @Trupti 请了解其社区,在寻求帮助时需要遵循某些准则。
  • @ElasticsearchNinja 我已经更新了相关细节。如果有帮助,请告诉我
猜你喜欢
  • 1970-01-01
  • 2012-09-07
  • 2021-12-16
  • 2014-01-06
  • 2012-05-07
  • 1970-01-01
  • 2016-10-24
相关资源
最近更新 更多