ElasticSearch中如何使用多种搜索方式检索数据
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家介绍ElasticSearch中如何使用多种搜索方式检索数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、query string search查询(1)、全量
千家信息网最后更新 2026年11月01日ElasticSearch中如何使用多种搜索方式检索数据
这篇文章给大家介绍ElasticSearch中如何使用多种搜索方式检索数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
1、query string search查询
(1)、全量查询
GET http://{{es-host}}/ecommerce/produce/_search结果:
{ "took": 38, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": 3, "max_score": 1.0, "hits": [ { "_index": "ecommerce", "_type": "produce", "_id": "2", "_score": 1.0, "_source": { "name": "jiajieshi yagao", "desc": "youxiao fangzhu", "price": 25, "producer": "jiajieshi producer", "tags": [ "fangzhu" ] } }, { "_index": "ecommerce", "_type": "produce", "_id": "1", "_score": 1.0, "_source": { "name": "gaolujie yagao", "desc": "gaoxiao meibai", "price": 30, "producer": "gaolujie producer", "tags": [ "meibai", "fangzhu" ] } }, { "_index": "ecommerce", "_type": "produce", "_id": "3", "_score": 1.0, "_source": { "name": "zhonghua yagao", "desc": "caoben zhiwu", "price": 40, "producer": "zhonghua producer", "tags": [ "qingxin" ] } } ] }}解释:
took 标识检索花费的时间,单位毫秒 time_out 是否超时 _shards 数据拆分成了5个分片,所以对于搜索请求,会打到所有的primary shard(或者是它的某个replica shard也可以) total 检索5个分片 successful 成功5个 hits.total 检索到数据的总记录数 hits.max_score 相似度分数 最高为1 hits.hits 数据集合 hits.hits._index 索引名称 hits.hits._type 类型 hits.hits._score 数据评分 hits.hits._source 数据项内容
(2)、根据商品名称检索,按价格倒叙排列
GET http://{{es-host}}/ecommerce/produce/_search?q=name:yagao&sort=price:desc结果:
{ "took": 71, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": 3, "max_score": null, "hits": [ { "_index": "ecommerce", "_type": "produce", "_id": "3", "_score": null, "_source": { "name": "zhonghua yagao", "desc": "caoben zhiwu", "price": 40, "producer": "zhonghua producer", "tags": [ "qingxin" ] }, "sort": [ 40 ] }, { "_index": "ecommerce", "_type": "produce", "_id": "1", "_score": null, "_source": { "name": "gaolujie yagao", "desc": "gaoxiao meibai", "price": 30, "producer": "gaolujie producer", "tags": [ "meibai", "fangzhu" ] }, "sort": [ 30 ] }, { "_index": "ecommerce", "_type": "produce", "_id": "2", "_score": null, "_source": { "name": "jiajieshi yagao", "desc": "youxiao fangzhu", "price": 25, "producer": "jiajieshi producer", "tags": [ "fangzhu" ] }, "sort": [ 25 ] } ] }}2、query DSL查询
DSL:Domain Specified Language.特定领域的语言
http request body :请求体,可以用json的格式来构建查询语法,比较方便,可以构建各种复杂的语法,比query string search肯定强大多了。
(1)、全量查询
GET http://{{es-host}}/ecommerce/produce/_search{ "query":{ "match_all":{} }}结果:
{ "took": 23, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": 3, "max_score": 1.0, "hits": [ { "_index": "ecommerce", "_type": "produce", "_id": "2", "_score": 1.0, "_source": { "name": "jiajieshi yagao", "desc": "youxiao fangzhu", "price": 25, "producer": "jiajieshi producer", "tags": [ "fangzhu" ] } }, { "_index": "ecommerce", "_type": "produce", "_id": "1", "_score": 1.0, "_source": { "name": "gaolujie yagao", "desc": "gaoxiao meibai", "price": 30, "producer": "gaolujie producer", "tags": [ "meibai", "fangzhu" ] } }, { "_index": "ecommerce", "_type": "produce", "_id": "3", "_score": 1.0, "_source": { "name": "zhonghua yagao", "desc": "caoben zhiwu", "price": 40, "producer": "zhonghua producer", "tags": [ "qingxin" ] } } ] }}(2) 、全量查询返回指定属性值
GET http://{{es-host}}/ecommerce/produce/_search{ "query":{ "match_all":{} }, "_source":["name","price"]}返回结果:
{ "took": 57, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": 3, "max_score": 1, "hits": [ { "_index": "ecommerce", "_type": "produce", "_id": "2", "_score": 1, "_source": { "price": 25, "name": "jiajieshi yagao" } }, { "_index": "ecommerce", "_type": "produce", "_id": "1", "_score": 1, "_source": { "price": 30, "name": "gaolujie yagao" } }, { "_index": "ecommerce", "_type": "produce", "_id": "3", "_score": 1, "_source": { "price": 40, "name": "zhonghua yagao" } } ] }}(3)、按商品名称搜索并按价格倒叙排列
GET http://{{es-host}}/ecommerce/produce/_search{ "query":{ "match":{ "name":"yagao" } }, "sort":{ "price":"desc" }}结果:
{ "took": 384, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": 3, "max_score": null, "hits": [ { "_index": "ecommerce", "_type": "produce", "_id": "3", "_score": null, "_source": { "name": "zhonghua yagao", "desc": "caoben zhiwu", "price": 40, "producer": "zhonghua producer", "tags": [ "qingxin" ] }, "sort": [ 40 ] }, { "_index": "ecommerce", "_type": "produce", "_id": "1", "_score": null, "_source": { "name": "gaolujie yagao", "desc": "gaoxiao meibai", "price": 30, "producer": "gaolujie producer", "tags": [ "meibai", "fangzhu" ] }, "sort": [ 30 ] }, { "_index": "ecommerce", "_type": "produce", "_id": "2", "_score": null, "_source": { "name": "jiajieshi yagao", "desc": "youxiao fangzhu", "price": 25, "producer": "jiajieshi producer", "tags": [ "fangzhu" ] }, "sort": [ 25 ] } ] }}3、query filter查询
搜索商品名称包含yagao,而且售价大于30元的商品
GET http://{{es-host}}/ecommerce/produce/_search{ "query":{ "bool":{ "must":{ "match":{ "name":"yagao" } }, "filter":{ "range":{ "price":{ "gt":"30" } } } } }}返回结果:
{ "took": 88, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": 1, "max_score": 0.25811607, "hits": [ { "_index": "ecommerce", "_type": "produce", "_id": "3", "_score": 0.25811607, "_source": { "name": "zhonghua yagao", "desc": "caoben zhiwu", "price": 40, "producer": "zhonghua producer", "tags": [ "qingxin" ] } } ] }}4、full-text search查询
准备数据:
PUT http://{{es-host}}/ecommerce/produce/4{ "name":"special yagao", "desc":"special meibai", "price":"50", "producer":"special yagao producer", "tags":["meibai"]}http://{{es-host}}/ecommerce/produce/_search{ "query":{ "match":{ "producer":"yagao producer" } }}检索时候会把"yagao producer" 分割成"yagao" 和"producer" 只要匹配上任何一个就是符合的数据
结果
{ "took": 20, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": 4, "max_score": 0.70293105, "hits": [ { "_index": "ecommerce", "_type": "produce", "_id": "4", "_score": 0.70293105, "_source": { "name": "special yagao", "desc": "special meibai", "price": "50", "producer": "special yagao producer", "tags": [ "meibai" ] } }, { "_index": "ecommerce", "_type": "produce", "_id": "1", "_score": 0.25811607, "_source": { "name": "gaolujie yagao", "desc": "gaolujie meibai", "price": 30, "producer": "gaolujie producer", "tags": [ "meibai", "fangzhu" ] } }, { "_index": "ecommerce", "_type": "produce", "_id": "3", "_score": 0.25811607, "_source": { "name": "zhonghua yagao", "desc": "caoben zhiwu", "price": 40, "producer": "zhonghua producer", "tags": [ "qingxin" ] } }, { "_index": "ecommerce", "_type": "produce", "_id": "2", "_score": 0.1805489, "_source": { "name": "jiajieshi yagao", "desc": "youxiao fangzhu", "price": 25, "producer": "jiajieshi producer", "tags": [ "fangzhu" ] } } ] }}最匹配的相关度评分高,会排在最前面。
5、phrase search查询
对要搜索的词不再分词
GET http://{{es-host}}/ecommerce/produce/_search{ "query":{ "match_phrase":{ "producer":"yagao producer" } }}结果:
{ "took": 33, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": 1, "max_score": 0.70293105, "hits": [ { "_index": "ecommerce", "_type": "produce", "_id": "4", "_score": 0.70293105, "_source": { "name": "special yagao", "desc": "special meibai", "price": "50", "producer": "special yagao producer", "tags": [ "meibai" ] } } ] }}6、highlight search查询
GET http://{{es-host}}/ecommerce/produce/_search{ "query":{ "match":{ "name":"yagao" } }, "highlight":{ "fields":{ "name":{} } }}结果:
{ "took": 16, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": 4, "max_score": 0.25811607, "hits": [ { "_index": "ecommerce", "_type": "produce", "_id": "1", "_score": 0.25811607, "_source": { "name": "gaolujie yagao", "desc": "gaolujie meibai", "price": 30, "producer": "gaolujie producer", "tags": [ "meibai", "fangzhu" ] }, "highlight": { "name": [ "gaolujie yagao" ] } }, { "_index": "ecommerce", "_type": "produce", "_id": "3", "_score": 0.25811607, "_source": { "name": "zhonghua yagao", "desc": "caoben zhiwu", "price": 40, "producer": "zhonghua producer", "tags": [ "qingxin" ] }, "highlight": { "name": [ "zhonghua yagao" ] } }, { "_index": "ecommerce", "_type": "produce", "_id": "2", "_score": 0.16358379, "_source": { "name": "jiajieshi yagao", "desc": "youxiao fangzhu", "price": 25, "producer": "jiajieshi producer", "tags": [ "fangzhu" ] }, "highlight": { "name": [ "jiajieshi yagao" ] } }, { "_index": "ecommerce", "_type": "produce", "_id": "4", "_score": 0.16358379, "_source": { "name": "special yagao", "desc": "special meibai", "price": "50", "producer": "special yagao producer", "tags": [ "meibai" ] }, "highlight": { "name": [ "special yagao" ] } } ] }}关于ElasticSearch中如何使用多种搜索方式检索数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
查询
数据
结果
检索
搜索
名称
商品
内容
多种
方式
价格
更多
语法
帮助
评分
不错
复杂
强大
最高
相似
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡网
互联网品科技
互联网的科技创新
朗涯互联网科技
齐家互联网科技有限公司
深圳期待互联网科技
互联网科技英文翻译
互联网科技公司需要的职位
华服互联网科技官网
互联网校园科技培训
互联网金融中的现代科技
互联网与医疗科技
移动互联网年度科技创新
杭州壁岐互联网科技有限公司
翼展科技 首家互联网医院
上海创道互联网络科技有限公司
福州德业互联网科技
绵阳真晨互联网科技有限公司
保山浩联互联网科技有限公司
优雇互联网科技有限公司
互联网最新的科技
网络科技有限互联网
未来的互联网科技
苏州互联网科技贷款公司
互联网科技素材视频竖屏
互联网科技公司招聘
互联网科技教育视频
互联网金融中的现代科技
保险科技服务互联网营销体系
广州百诚互联网科技有限公司官网