Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene"htmlcode">
# 搜索所有数据 es.search(index="my_index",doc_type="test_type") # 或者 body = { "query":{ "match_all":{} } } es.search(index="my_index",doc_type="test_type",body=body)
term与terms
# term body = { "query":{ "term":{ "name":"python" } } } # 查询name="python"的所有数据 es.search(index="my_index",doc_type="test_type",body=body) # terms body = { "query":{ "terms":{ "name":[ "python","android" ] } } } # 搜索出name="python"或name="android"的所有数据 es.search(index="my_index",doc_type="test_type",body=body)
match与multi_match
# match:匹配name包含python关键字的数据 body = { "query":{ "match":{ "name":"python" } } } # 查询name包含python关键字的数据 es.search(index="my_index",doc_type="test_type",body=body) # multi_match:在name和addr里匹配包含深圳关键字的数据 body = { "query":{ "multi_match":{ "query":"深圳", "fields":["name","addr"] } } } # 查询name和addr包含"深圳"关键字的数据 es.search(index="my_index",doc_type="test_type",body=body)
ids
body = { "query":{ "ids":{ "type":"test_type", "values":[ "1","2" ] } } } # 搜索出id为1或2d的所有数据 es.search(index="my_index",doc_type="test_type",body=body)
复合查询bool
bool有3类查询关系,must(都满足),should(其中一个满足),must_not(都不满足)
body = { "query":{ "bool":{ "must":[ { "term":{ "name":"python" } }, { "term":{ "age":18 } } ] } } } # 获取name="python"并且age=18的所有数据 es.search(index="my_index",doc_type="test_type",body=body)
切片式查询
body = { "query":{ "match_all":{} } "from":2 # 从第二条数据开始 "size":4 # 获取4条数据 } # 从第2条数据开始,获取4条数据 es.search(index="my_index",doc_type="test_type",body=body)
范围查询
body = { "query":{ "range":{ "age":{ "gte":18, # >=18 "lte":30 # <=30 } } } } # 查询18<=age<=30的所有数据 es.search(index="my_index",doc_type="test_type",body=body)
前缀查询
body = { "query":{ "prefix":{ "name":"p" } } } # 查询前缀为"赵"的所有数据 es.search(index="my_index",doc_type="test_type",body=body)
通配符查询
body = { "query":{ "wildcard":{ "name":"*id" } } } # 查询name以id为后缀的所有数据 es.search(index="my_index",doc_type="test_type",body=body)
排序
body = { "query":{ "match_all":{} } "sort":{ "age":{ # 根据age字段升序排序 "order":"asc" # asc升序,desc降序 } } }
filter_path
响应过滤
# 只需要获取_id数据,多个条件用逗号隔开 es.search(index="my_index",doc_type="test_type",filter_path=["hits.hits._id"]) # 获取所有数据 es.search(index="my_index",doc_type="test_type",filter_path=["hits.hits._*"])
count
执行查询并获取该查询的匹配数
# 获取数据量 es.count(index="my_index",doc_type="test_type")
度量类聚合
- 获取最小值
body = { "query":{ "match_all":{} }, "aggs":{ # 聚合查询 "min_age":{ # 最小值的key "min":{ # 最小 "field":"age" # 查询"age"的最小值 } } } } # 搜索所有数据,并获取age最小的值 es.search(index="my_index",doc_type="test_type",body=body)
- 获取最大值
body = { "query":{ "match_all":{} }, "aggs":{ # 聚合查询 "max_age":{ # 最大值的key "max":{ # 最大 "field":"age" # 查询"age"的最大值 } } } } # 搜索所有数据,并获取age最大的值 es.search(index="my_index",doc_type="test_type",body=body)
- 获取和
body = { "query":{ "match_all":{} }, "aggs":{ # 聚合查询 "sum_age":{ # 和的key "sum":{ # 和 "field":"age" # 获取所有age的和 } } } } # 搜索所有数据,并获取所有age的和 es.search(index="my_index",doc_type="test_type",body=body)
- 获取平均值
body = { "query":{ "match_all":{} }, "aggs":{ # 聚合查询 "avg_age":{ # 平均值的key "sum":{ # 平均值 "field":"age" # 获取所有age的平均值 } } } } # 搜索所有数据,获取所有age的平均值 es.search(index="my_index",doc_type="test_type",body=body)
更多的搜索用法:
https://elasticsearch-py.readthedocs.io/en/master/api.html
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。