24
01月
2025
ElasticSearch常用分类查询
1.查询所有 match_all,无需查询条件。
GET /langhaiblogs/_search
{
"query": {
"match_all": {}
}
}
2.全文检索查询:对用户输入的内容进行分词,然后倒排索引进行匹配查询。
match_query:单字段查询
GET /langhaiblogs/_search
{
"query": {
"match": {
"title": "浪海博客"
}
}
}
multi_match:允许对多个字段进行查询。
GET /langhaiblogs/_search
{
"query": {
"multi_match": {
"query": "面试",
"fields": ["title", "abstractText"]
}
}
}
3.精确查询:一般是查找 keyword、数值、日期、boolean等类型字段,不会对搜索条件进行分词。
term:词条精确值查询
GET /langhaiblogs/_search
{
"query": {
"term": {
"publicShow": {
"value": "1"
}
}
}
}
range:根据值的范围查询
GET /langhaiblogs/_search
{
"query": {
"range": {
"publicShow": {
"gte": 1,
"lte": 20
}
}
}
}
4.地理查询:根据经纬度进行查询
geo_bounding_box:查询geo_point值在某个矩形范围的所有文档,指定左上、右下两个点的坐标画出一个矩形。
GET /langhai_geo/_search
{
"query": {
"geo_bounding_box": {
"location": {
"top_left": {
"lat": 31.1,
"lon": 121.5
},
"bottom_right": {
"lat": 30.2,
"lon": 122.7
}
}
}
}
}
geo_distance:查询指定中心点小于某个距离值的所有文档
GET /langhai_geo/_search
{
"query": {
"geo_distance": {
"distance": "15km",
"location": "31.1, 121.8"
}
}
}
5.复合查询:将简单查询组合起来,实现更复杂的搜索逻辑。
function score:算分函数查询,控制文档相关性算法,控制文档排名。
GET /langhaiblogs/_search
{
"query": {
"function_score": {
"query": {
"match": {
"title": "面试"
}
},
"functions": [
{
"filter": {
"match": {
"title": "为什么"
}
},
"weight": 10
}
],
"boost_mode": "sum"
}
}
}
bool query:布尔查询,利用逻辑关系组合多个其他的查询。
must:必须匹配的条件
should:选择性匹配的条件
must_not:必须不匹配的条件,不参与算分。
filter:必须匹配的条件,不参与算法。
GET /langhaiblogs/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"title": "面试"
}
}
],
"must_not": [
{
"range": {
"publicShow": {
"gte": 10,
"lte": 20
}
}
}
],
"filter": [
{
"term": {
"id": "97"
}
}
]
}
}
}
四美Java之父 浪海 学习用途。
非特殊说明,本文版权归 langhai 所有,转载请注明出处。
本文标题: ElasticSearch常用分类查询
延伸阅读
- 浪海博客系统友情链接说明
- 浪海同志的一生
- 浪海博客系统部署说明
- 浪海皇室 QQ飞车手游
- minio 相关说明
- 浪海导航关于本站
- rabbitMQ 相关说明
- mysql相关说明
- ribbon负载均衡
- gateway服务网关基本使用