首页
学习
活动
专区
圈层
工具
发布

ElasticSearch(7.2.2)-es之term的多种查询

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。undefined本文链接:https://blog.csdn.net/weixin_42528266/article/details/102803896

简介:⼿把⼿带你玩转es的⼏种查询

介绍

  • 单词级别查询
  • 这些查询通常⽤于结构化的数据,⽐如:number, date, keyword等,⽽不是对text。
  • 也就是说,全⽂本查询之前要先对⽂本内容进⾏分词,⽽单词级别的查询直接在相应字段的反向索引中精确查找,单词级别的查询⼀般⽤于数值、⽇期等类型的字段上
  • 准备⼯作
    • 删除nba索引
    • 新增nba索引

PUT nba

代码语言:javascript
复制
{
	"mappings": {
		"properties": {
			"birthDay": {
				"type": "date"
			},
			"birthDayStr": {
				"type": "keyword"
			},
			"age": {
				"type": "integer"
			},
			"code": {
				"type": "text"
			},
			"country": {
				"type": "text"
			},
			"countryEn": {
				"type": "text"
			},
			"displayAffiliation": {
				"type": "text"
			},
			"displayName": {
				"type": "text"
			},
			"displayNameEn": {
				"type": "text"
			},
			"draft": {
				"type": "long"
			},
			"heightValue": {
				"type": "float"
			},
			"jerseyNo": {
				"type": "text"
			},
			"playYear": {
				"type": "long"
			},
			"playerId": {
				"type": "keyword"
			},
			"position": {
				"type": "text"
			},
			"schoolType": {
				"type": "text"
			},
			"teamCity": {
				"type": "text"
			},
			"teamCityEn": {
				"type": "text"
			},
			"teamConference": {
				"type": "keyword"
			},
			"teamConferenceEn": {
				"type": "keyword"
			},
			"teamName": {
				"type": "keyword"
			},
			"teamNameEn": {
				"type": "keyword"
			},
			"weight": {
				"type": "text"
			}
		}
	}
}
  • Term query 精准匹配查询(查找号码为23的球员)

POST nba/_search

代码语言:javascript
复制
{
	"query": {
		"term": {
			"jerseyNo": "23"
		}
	}
}
  • Exsit Query 在特定的字段中查找⾮空值的⽂档(查找队名⾮空的球员)

POST nba/_search

代码语言:javascript
复制
{
	"query": {
		"exists": {
			"field": "teamNameEn"
		}
	}
}
  • Prefix Query 查找包含带有指定前缀term的⽂档(查找队名以Rock开头的球员)

POST nba/_search

代码语言:javascript
复制
{
	"query": {
		"prefix": {
			"teamNameEn": "Rock"
		}
	}
}
  • Wildcard Query ⽀持通配符查询,*表示任意字符,?表示任意单个字符(查找⽕箭队的球员)

POST nba/_search

代码语言:javascript
复制
{
	"query": {
		"wildcard": {
			"teamNameEn": "Ro*s"
		}
	}
}
  • Regexp Query 正则表达式查询(查找⽕箭队的球员)

POST nba/_search

代码语言:javascript
复制
{
	"query": {
		"regexp": {
			"teamNameEn": "Ro.*s"
		}
	}
}
  • Ids Query(查找id为1和2的球员)

POST nba/_search

代码语言:javascript
复制
{
	"query": {
		"ids": {
			"values": [1, 2]
		}
	}
}
下一篇
举报
领券