赞
踩
es的collapse只能针对一个字段聚合(针对大数据量去重),如果以age为聚合字段,则会展示第一条数据,如果需要展示多个字段,需要创建新的字段,如下
- POST testleh/_update_by_query
- {
- "script": {
- "source": "ctx._source.new_field = ctx._source.name+','+ctx._source.age "
- }
- }
该代码以age和那么创建了一个newfiled,如下图
这时就可以重新使用collapse查询
- GET /testleh/_search
- {
- "_source": "name",
- "query": {
- "match_all": {}
- },
- "sort": [
- {
- "age": {
- "order": "desc"
- }
- }
- ],
- "collapse": {
- "field": "new_field.keyword"
- },
-
- }
附上删除索引的代码
- POST testleh/_update_by_query
- {
- "script": {
- "source": "if (ctx._source.containsKey('new_field')) { ctx._source.remove('new_field') }"
- }
- }
再者就是对于term匹配多个查询条件,代码如下,主要是should或者must里面一个大括号只能写一个term/match/range
- GET /testleh/_search
- {
- "query": {
- "bool": {
- "should": [
- {
- "term": {
- "age": {
- "value": "18"
- }
- }
- },{
- "term": {
- "name": {
- "value": "李华"
- }
- }
- }
- ]
- }
- }
- }
es的scroll可以对于大数据量进行查询,不适合实时查询展示
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。