Elasticsearch数据查询

Elasticsearch数据查询


2023年11月25日发(作者:华为荣耀系列哪款最好)

Elasticsearch数据查询

数据准备:

PUT /shop

{

"settings": {

"number_of_shards": 3,

"number_of_replicas": 2

}

}

PUT /shop/_mapping/goods

{

"properties": {

"title": {

"type": "text",

"analyzer": "ik_max_word"

},

"price": {

"type": "float"

},

"stock": {

"type": "integer"

}

}

}

POST /shop/goods/_bulk

{"index":{}}

{"title": "⼩⽶8 全⾯屏游戏智能⼿机 6GB+64GB ⿊⾊ 全⽹通4G 双卡双待","price": 2299.00,"stock": 8800}

{"index":{}}

{"title": "OPPO Find X曲⾯全景屏 波尔多红 8GB+128GB 全⽹通 移动联通电信全⽹通4G 双卡双待⼿机","price": 4999.00,"stock": 5600}

{"index":{}}

{"title": "联想(Lenovo)拯救者Y7000P英特尔酷睿 i7 15.6英⼨游戏笔记本电脑(i7-8750H 8G 512G SSD GTX1060 144Hz)","price": 8599.00,"stock": 1900}

{"index":{}}

{"title": "TP-LINK TL-WDR5620 1200M 5G双频智能⽆线路由器 四天线智能wifi 稳定穿墙⾼速家⽤路由器","price": 109.00,"stock": 9970}

⼀、基本查询

语法:

GET /索引库名/_search

{

"query": {

"查询类型": {

"查询条件": "查询条件值"

}

}

}

查询类型:match_allmatchtermrangefuzzybool 等等

查询条件:查询条件会根据类型的不同,写法也有差异

1.1 查询所有(match_all

查询指令:

GET /shop/_search

{

"query": {

"match_all": {}

}

}

查询结果:

{

"took": 13,

"timed_out": false,

"_shards": {

"total": 3,

"skipped": 0,

"failed": 0

},

"hits": {

"total": 4,

"max_score": 1,

"hits": [

{

"_index": "shop",

"_type": "goods",

"_id": "P4EGtmgBBdkQnU_d8b7I",

"_score": 1,

"_source": {

"title": "联想(Lenovo)拯救者Y7000P英特尔酷睿 i7 15.6英⼨游戏笔记本电脑(i7-8750H 8G 512G SSD GTX1060 144Hz)",

"price": 8599,

"stock": 1900

}

},

{

"_index": "shop",

"_type": "goods",

"_id": "QIEGtmgBBdkQnU_d-r6T",

"_score": 1,

"_source": {

"title": "TP-LINK TL-WDR5620 1200M 5G双频智能⽆线路由器 四天线智能wifi 稳定穿墙⾼速家⽤路由器",

"price": 109,

"stock": 9970

}

},

{

"_index": "shop",

"_type": "goods",

"_id": "PYEGtmgBBdkQnU_d4b4m",

"_score": 1,

"_source": {

"title": "⼩⽶8 全⾯屏游戏智能⼿机 6GB+64GB ⿊⾊ 全⽹通4G 双卡双待",

"price": 2299,

"stock": 8800

}

},

{

"query": "⼩⽶⼿机",

"operator": "or"

}

}

}

}

查询结果:

{

"took": 3,

"timed_out": false,

"_shards": {

{

"_index": "shop",

"_type": "goods",

"_id": "PYEGtmgBBdkQnU_d4b4m",

"_score": 0.92355466,

"_source": {

"title": "⼩⽶8 全⾯屏游戏智能⼿机 6GB+64GB ⿊⾊ 全⽹通4G 双卡双待",

"price": 2299,

"stock": 8800

}

}

]

}

}

1.3 词条查询

单值查询(term

查询指令:

GET /shop/_search

{

"query": {

"term": {

"price": 109.00

}

{

"took": 15,

"timed_out": false,

"_shards": {

"total": 3,

"successful": 3,

"skipped": 0,

"failed": 0

},

"hits": {

"total": 2,

"max_score": 1,

"hits": [

{

"_index": "shop",

"_type": "goods",

"_id": "P4EGtmgBBdkQnU_d8b7I",

"_score": 1,

"_source": {

"title": "联想(Lenovo)拯救者Y7000P英特尔酷睿 i7 15.6英⼨游戏笔记本电脑(i7-8750H 8G 512G SSD GTX1060 144Hz)",

"price": 8599,

"stock": 1900

}

},

{

"_index": "shop",

"_type": "goods",

"_id": "QIEGtmgBBdkQnU_d-r6T",

"_score": 1,

"_score": 1,

"_source": {

"price": 8599,

"title": "联想(Lenovo)拯救者Y7000P英特尔酷睿 i7 15.6英⼨游戏笔记本电脑(i7-8750H 8G 512G SSD GTX1060 144Hz)"

}

},

{

"_index": "shop",

"_type": "goods",

"_id": "QIEGtmgBBdkQnU_d-r6T",

"_score": 1,

"_source": {

"price": 109,

"title": "TP-LINK TL-WDR5620 1200M 5G双频智能⽆线路由器 四天线智能wifi 稳定穿墙⾼速家⽤路由器"

}

},

{

"_index": "shop",

"_type": "goods",

"_id": "PYEGtmgBBdkQnU_d4b4m",

"_score": 1,

"_source": {

"price": 2299,

"title": "⼩⽶8 全⾯屏游戏智能⼿机 6GB+64GB ⿊⾊ 全⽹通4G 双卡双待"

}

},

{

"_index": "shop",

"_type": "goods",

"_id": "PoEGtmgBBdkQnU_d6b4Q",

"_score": 1,

"_source": {

"price": 4999,

"title": "OPPO Find X曲⾯全景屏 波尔多红 8GB+128GB 全⽹通 移动联通电信全⽹通4G 双卡双待⼿机"

}

}

]

}

}

{

"_index": "shop",

"_type": "goods",

"_id": "QIEGtmgBBdkQnU_d-r6T",

"_score": 1,

"_source": {

"title": "TP-LINK TL-WDR5620 1200M 5G双频智能⽆线路由器 四天线智能wifi 稳定穿墙⾼速家⽤路由器",

"stock": 9970

}

},

{

"_index": "shop",

"_type": "goods",

"_id": "PYEGtmgBBdkQnU_d4b4m",

"_score": 1,

"_source": {

"title": "⼩⽶8 全⾯屏游戏智能⼿机 6GB+64GB ⿊⾊ 全⽹通4G 双卡双待",

"stock": 8800

}

},

{

"_index": "shop",

"_type": "goods",

"_id": "PoEGtmgBBdkQnU_d6b4Q",

"_score": 1,

"_source": {

"title": "OPPO Find X曲⾯全景屏 波尔多红 8GB+128GB 全⽹通 移动联通电信全⽹通4G 双卡双待⼿机",

"stock": 5600

}

}

]

}

}

},

{

"_index": "shop",

"_type": "goods",

"_id": "PoEGtmgBBdkQnU_d6b4Q",

"_score": 1,

"_source": {

"title": "OPPO Find X曲⾯全景屏 波尔多红 8GB+128GB 全⽹通 移动联通电信全⽹通4G 双卡双待⼿机",

"price": 4999,

"stock": 5600

}

}

]

}

}

range查询允许以下操作符

3.2 布尔查询(bool

bool把各种其它查询通过must(与)、must_not(⾮)、should(或)的⽅式进⾏组合

查询指令:

GET /shop/_search

{

"query": {

"bool": {

"should": [

{

"match": {

"title": "笔记本"

}

},

{

"term": {

"price": 109.00

}

}

]

}

}

}

"price": 109,

"stock": 9970

}

}

]

}

}

四、过滤查询

所有的查询都会影响到⽂档的评分及排名。如果我们需要在查询结果中进⾏过滤,并且不希望过滤条件影响评分,

那么就不要把过滤条件作为查询条件来⽤,⽽是使⽤filter⽅式。

查询指令:

GET /shop/_search

{

"query": {

"bool": {

"must": [

{

"match": {

"title": "⼿机"

}

}

],

"filter": {

"range": {

"price": {

查询指令:

GET /shop/_search

{

"query": {

"match_all": {}

},

"sort": [

{

"price": {

"order": "desc"

}

}

]

}

查询结果:

{

"took": 55,

"timed_out": false,

"_shards": {

"total": 3,

"successful": 3,

"skipped": 0,

"failed": 0

},

"hits": {

"total": 4,

"max_score": null,

"hits": [

{

"_index": "shop",

"_type": "goods",

"_id": "P4EGtmgBBdkQnU_d8b7I",

"_score": null,

"_source": {

"title": "联想(Lenovo)拯救者Y7000P英特尔酷睿 i7 15.6英⼨游戏笔记本电脑(i7-8750H 8G 512G SSD GTX1060 144Hz)",

"price": 8599,

"stock": 1900

},

"sort": [

8599

"stock": 9970


发布者:admin,转转请注明出处:http://www.yc00.com/num/1700891882a1034831.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信