gpt4 book ai didi

elasticsearch - 在Elasticsearch中查找触发 `ignore_malformed`的文档

转载 作者:行者123 更新时间:2023-12-02 23:23:31 25 4
gpt4 key购买 nike

如果将数据插入不适合现有类型的字段,则默认情况下,Elasticsearch会引发异常。例如,如果已将字段创建为数字类型,则在该字段中插入带有字符串值的文档会导致错误。

可以通过启用ignore_malformed设置来更改此行为,这意味着出于索引目的这些字段将被静默忽略,但是保留在_source文档中-意味着无法搜索或汇总无效值,但仍包含在返回的文档中。

在我们的用例中,这是可取的行为,但是我们希望能够以某种方式找到此类文档,以便将来进行修复。

是否可以通过某种方式标记忽略了某些格式错误的字段的文档?我们完全控制文档的插入过程,因此我们可以修改所有插入标志,或尝试插入,或执行任何操作,以实现我们的目标。

最佳答案

您可以使用exists查询来查找该字段不存在的文档,请参见此示例

PUT foo
{
"mappings": {
"bar": {
"properties": {
"baz": {
"type": "integer",
"ignore_malformed": true
}
}
}
}
}

PUT foo/bar/1
{
"baz": "field"
}

GET foo/bar/_search
{
"query": {
"bool": {
"filter": {
"bool": {
"must_not": [
{
"exists": {
"field": "baz"
}
}
]
}
}
}
}
}

但是,没有专用的机制,因此此搜索还会查找没有故意设置该字段的文档

关于elasticsearch - 在Elasticsearch中查找触发 `ignore_malformed`的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45920844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com