本文基于elasticsearch java客户端elasticsearch-5.5.2.jar
在工作中遇到一些问题,存储大量数据,本来是计划用OpenTSDB存储这些数据,因为这些数据可以描述为点,具有比较明确的时序特性,但实际中用的OpenTSDB不稳定,并且调研发现ES也可以存这批数据,相对来讲扩展性更好,但需要做好跨索引的工作。
查询
json报文格式:
{
"query": {
"bool": {
"must": [
{
"term": {
"src": "10.10.169.145"
}
},
{
"term": {
"app": "中文"
}
},
{
"term": {
"appid": "test"
}
},
{
"range": {
"timestamp.long": {
"gt": "1544510518758",
"lt": "1544511518758"
}
}
}
],
"should": [
{
"term": {
"id": "test.id"
}
}
]
}
},
"from": 0,
"size": 10000,
"sort": [],
"aggs": {
}
}
}
以上报文匹配appid为test,app为中文,src为10.10.169.145,timestamp时间范围为1544510518758到1544511518758,并且id可以为test.id的文档,其中包括must查询和should查询,must查询为全匹配,should可以理解为或,其它查询还有mustnot为非,wildcardQuery查询为模糊匹配。
String index = "index"