Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### distinct
- ```js
- {
- "size": 0,
- "aggs": {
- "uniq_country": {
- "terms": {
- "field": "alarmData.alarmType"
- }
- }
- }
- }
- ```
- ### group by where
- ```js
- {
- "size": 0,
- "query": {
- "bool": {
- "must": [
- {
- "range": {
- "dxpGpsData.gpsTime": {
- "lte": $gpsTime
- }
- }
- },
- {
- "range": {
- "dxpGpsData.latitude": {
- "gte": 1
- }
- }
- },
- {
- "range": {
- "dxpGpsData.latitude": {
- "gte": 1
- }
- }
- }
- ],
- "filter": [
- {
- "terms": {
- "imei.keyword": $imei
- }
- }
- ]
- }
- },
- "aggregations": {
- "by_imei": {
- "terms": {
- "size": 2147483647,
- "field": "imei.keyword"
- },
- "aggregations": {
- "online_time": {
- "max": {
- "field": "dxpGpsData.gpsTime"
- }
- },
- "detail": {
- "top_hits": {
- "size": 1,
- "from": 0,
- "_source": {
- "excludes": [],
- "includes": [
- "dxpGpsData.latitude",
- "dxpGpsData.longitude",
- "dxpGpsData.gpsTime"
- ]
- },
- "sort": [
- {
- "dxpGpsData.gpsTime": {
- "order": "desc"
- }
- }
- ]
- }
- }
- }
- }
- }
- }
- ```
- ### select where
- ```js
- {
- "_source": {
- "includes": [
- "imei",
- "dxpGpsData.gpsTime",
- "dxpGpsData.speed",
- "dxpGpsData.longitude",
- "dxpGpsData.latitude",
- "dxpFullProtoData.alarmType"
- ],
- "excludes": []
- },
- "from": 0,
- "size": 20,
- "min_score": 1,
- "query": {
- "function_score": {
- "query": {
- "bool": {
- "must": [
- {
- "range": {
- "dxpFullProtoData.alarmType": {
- "gt": 0
- }
- }
- },
- {
- "range": {
- "dxpGpsData.latitude": {
- "gte": 1
- }
- }
- },
- {
- "range": {
- "dxpGpsData.latitude": {
- "gte": 1
- }
- }
- },
- {
- "range": {
- "dxpGpsData.speed": {
- "lte": 200
- }
- }
- },
- {
- "range": {
- "dxpGpsData.gpsTime": {
- "gte": $startTime,
- "lte": $endTime
- }
- }
- }
- ],
- "filter": [
- {
- "terms": {
- "imei": $imei
- }
- }
- ]
- }
- }
- }
- },
- "sort": [
- {
- "dxpGpsData.gpsTime": "desc"
- }
- ]
- }
- ```
- ### too_many_clauses: maxClauseCount is set to 1024
- es的in查询,in中id大于1024个,导致es报错,es默认支持元素数量为1024个。
- 编辑elasticsearch.yml,添加如下配置:
- indices.query.bool.max_clause_count: 10240
- **或者把must中的terms移至filter中**
- 必须过滤条件建议优先使用filter,只有该条件要参与score计算时才用must!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement