如何在弹性搜索中强制执行有效的json?

时间:2016-07-08 20:12:51

标签: java json validation elasticsearch

请考虑以下代码:

function add_document() {
    index=$1
    _type=$2
    json="$3"

    curl -s -X PUT "$NODE_ADDRESS/index/_type?pretty" -d "$json"
}

add_document users documents '{user_name : "kshitiz"}'

上面的函数运行得很好,并将文档添加到索引中。但问题是{user_name : "kshitiz"}不是有效的JSON。

我可以在发送给Elastic之前在我的代码中验证JSON,但问题是这个实例将在大型团队之间共享。更好的解决方案是在节点上禁用无效的JSON作为可接受的文档,这样添加操作就会失败并迫使开发人员正确编码。

如何在Elastic中启用严格的JSON验证?

2 个答案:

答案 0 :(得分:0)

您应该在插件中实现此功能。看看例子:

Validate data before indexing them
Implementing data validation in ElasticSearch

答案 1 :(得分:0)

使用基本上是ES文档类型中的文档架构的映射。此映射仅对键和关联值进行类型检查。 https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html#_explicit_mappings