求和:
以price进行分组
# 以price进行分组 get vanilla/_search { "query":{ "match_all": {} }, "aggs":{ "group_price":{ "terms": { "field": "price", "size": 3 # 取分组前三 } } } } # 最大值 get vanilla/_search { "query":{ "match_all": {} }, "size": 0, "aggs":{ "max_price":{ "max":{ "field": "price" } } } } # 默认查询所有 get vanilla/_search { "aggs":{ "max_price":{ "max":{ "field": "price" } } } } # 求和 get vanilla/_search { "query":{ "match_all": {} }, "size":0, "aggs":{ "max_price":{ "sum":{ "field": "price" } } } }
利用Python插入测试数据
from elasticsearch import Elasticsearch client = Elasticsearch('http://localhost:9200') lst = [ {'title': '面包', 'price': 19.9, 'description': '小面包非常好吃'}, {'title': '旺仔牛奶', 'price': 29.9, 'description': '非常好喝'}, {'title': '日本豆', 'price': 19.9, 'description': '日本豆非常好吃'}, {'title': '小馒头', 'price': 19.9, 'description': '小馒头非常好吃'}, {'title': '大辣片', 'price': 39.9, 'description': '大辣片非常好吃'}, {'title': '透心凉', 'price': 9.9, 'description': '透心凉非常好喝'}, {'title': '小浣熊', 'price': 19.9, 'description': '童年的味道'}, {'title': '海苔', 'price': 49.9, 'description': '海的味道'}, ] # for item in lst: # client.index(index = 'vanilla', document = item) # response = client.index(index = 'vanilla', document = doc) # print(response['result']) t1 = client.get(index = 'vanilla', id = '1') print(t1['_source']) client.indices.refresh(index = 'vanilla') response = client.search(index = 'vanilla', query = { "match_all": {} }) print(f'hits: {response["hits"]["total"]["value"]}') for hit in response['hits']['hits']: print('title: {title:<8} price: {price: 5.2f} description: {description}'.format(**hit['_source']))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。