对于下面给出的ElasticSearch
索引的测试数据,我们如何消除包含UUID或任何正则表达式的字段名称?
{
"_index": "twitter",
"_type": "test_data",
"_id": "05ed7d0d-ec9e-4e48-a5a3-cdef11e7be28",
"_score": 8.843938,
"_source": {
"test_data-created_time": 1485858118,
"test_data-status": 1,
"cluster-05ed7d0d-ec9e-4e48-a5a3-cdef11e7be28": "ElasticSearch"
}
}
我可以使用以下查询来实现此要求,但是有许多字段将UUID作为字段名称本身的一部分进行匹配。任何人都对如何优化有更好的想法?
GET /twitter/test_data/_search
{
"_source": {
"excludes": [
"cluster-05ed7d0d-ec9e-4e48-a5a3-cdef11e7be28"
]
}
}
答案 0 :(得分:0)
不知道是否有办法排除通配符以外的模式。如果所有UUID字段都具有类似特定前缀的模式,例如群集,则可以使用cluster-*
。否则,如果不与其他领域发生冲突,这样的事情就可以发挥作用:
"_source": {
"excludes": ["*-*-*-*-*"]}
虽然这不是一个非常干净的解决方案。