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_all,match,term,range,fuzzy,bool 等等
查询条件:查询条件会根据类型的不同,写法也有差异
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条)