在Kibana/Elasticsearch中筛选或检查三引号JSON对象



我一直在尝试对非索引嵌套JSON字段进行筛选,并考虑到以下示例文档(使用Kibana开发工具检索(。

{
"id": "",
"timestamp": "",
"innerData": {
"innerField": "",
"innerJson": """{ inner json in here }"""
}
}

由于我一直在尝试在innerJson(未编入索引(中筛选密钥,但没有成功,因此我遇到了几个问题。

Kibana中是否有三个引号,以便于阅读,因为它是一个JSON,包含多个引号?是否可以像对当前文档字段(如innerData.innerField(所做的那样,对innerData.innerJson映射的值进行筛选?

GET /my_index/_search
{
"query": {
"wildcard": {
"innerData.innerJson.INNER_JSON_FIELD": {
"value": "*sample*"
}
}
}
}

我已经在ES上玩了一段时间,并考虑到一个大索引(大约100M个条目(,我认为在索引字段中进行这样的过滤会是一个昂贵的操作吗?有没有建议进行优化,以免对性能造成太大影响?

JSON本身不支持三引号,所以是的,它是Kibana可读性约定。当您检查代理请求时,您可以看到双引号内的所有双引号都被转义了-->" "..." "

至于字段innerJson——由于它没有索引,因此不可搜索,因此实际上没有办法对其进行筛选,更不用说访问字符串化的JSON内部属性了。离开是text,对其进行野生梳理是非常昂贵的,但如果是indexed,则有可能

内部JSON有多少个键值对?是什么阻止你在进入ES之前对其进行解析?

最新更新