【发布时间】: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