Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.71 KB | None | 0 0
  1. ### distinct
  2.  
  3. ```js
  4. {
  5. "size": 0,
  6. "aggs": {
  7. "uniq_country": {
  8. "terms": {
  9. "field": "alarmData.alarmType"
  10. }
  11. }
  12. }
  13. }
  14. ```
  15.  
  16. ### group by where
  17.  
  18. ```js
  19. {
  20. "size": 0,
  21. "query": {
  22. "bool": {
  23. "must": [
  24. {
  25. "range": {
  26. "dxpGpsData.gpsTime": {
  27. "lte": $gpsTime
  28. }
  29. }
  30. },
  31. {
  32. "range": {
  33. "dxpGpsData.latitude": {
  34. "gte": 1
  35. }
  36. }
  37. },
  38. {
  39. "range": {
  40. "dxpGpsData.latitude": {
  41. "gte": 1
  42. }
  43. }
  44. }
  45. ],
  46. "filter": [
  47. {
  48. "terms": {
  49. "imei.keyword": $imei
  50. }
  51. }
  52. ]
  53. }
  54. },
  55. "aggregations": {
  56. "by_imei": {
  57. "terms": {
  58. "size": 2147483647,
  59. "field": "imei.keyword"
  60. },
  61. "aggregations": {
  62. "online_time": {
  63. "max": {
  64. "field": "dxpGpsData.gpsTime"
  65. }
  66. },
  67. "detail": {
  68. "top_hits": {
  69. "size": 1,
  70. "from": 0,
  71. "_source": {
  72. "excludes": [],
  73. "includes": [
  74. "dxpGpsData.latitude",
  75. "dxpGpsData.longitude",
  76. "dxpGpsData.gpsTime"
  77. ]
  78. },
  79. "sort": [
  80. {
  81. "dxpGpsData.gpsTime": {
  82. "order": "desc"
  83. }
  84. }
  85. ]
  86. }
  87. }
  88. }
  89. }
  90. }
  91. }
  92. ```
  93.  
  94. ### select where
  95. ```js
  96. {
  97. "_source": {
  98. "includes": [
  99. "imei",
  100. "dxpGpsData.gpsTime",
  101. "dxpGpsData.speed",
  102. "dxpGpsData.longitude",
  103. "dxpGpsData.latitude",
  104. "dxpFullProtoData.alarmType"
  105. ],
  106. "excludes": []
  107. },
  108. "from": 0,
  109. "size": 20,
  110. "min_score": 1,
  111. "query": {
  112. "function_score": {
  113. "query": {
  114. "bool": {
  115. "must": [
  116. {
  117. "range": {
  118. "dxpFullProtoData.alarmType": {
  119. "gt": 0
  120. }
  121. }
  122. },
  123. {
  124. "range": {
  125. "dxpGpsData.latitude": {
  126. "gte": 1
  127. }
  128. }
  129. },
  130. {
  131. "range": {
  132. "dxpGpsData.latitude": {
  133. "gte": 1
  134. }
  135. }
  136. },
  137. {
  138. "range": {
  139. "dxpGpsData.speed": {
  140. "lte": 200
  141. }
  142. }
  143. },
  144. {
  145. "range": {
  146. "dxpGpsData.gpsTime": {
  147. "gte": $startTime,
  148. "lte": $endTime
  149. }
  150. }
  151. }
  152.  
  153. ],
  154. "filter": [
  155. {
  156. "terms": {
  157. "imei": $imei
  158. }
  159. }
  160. ]
  161. }
  162. }
  163. }
  164. },
  165. "sort": [
  166. {
  167. "dxpGpsData.gpsTime": "desc"
  168. }
  169. ]
  170. }
  171. ```
  172.  
  173.  
  174. ### too_many_clauses: maxClauseCount is set to 1024
  175.  
  176. es的in查询,in中id大于1024个,导致es报错,es默认支持元素数量为1024个。
  177. 编辑elasticsearch.yml,添加如下配置:
  178. indices.query.bool.max_clause_count: 10240
  179.  
  180. **或者把must中的terms移至filter中**
  181.  
  182. 必须过滤条件建议优先使用filter,只有该条件要参与score计算时才用must!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement