ELK(七)ElasticSearch搜索

本文介绍了ElasticSearch的DSL查询语言,通过示例展示了如何进行基本的、复杂的搜索,全文检索,短语搜索以及高亮搜索结果。查询语法与MongoDB类似,提供高效、灵活的结构化搜索能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、DSL语句查询

ElasticSearch提供丰富且灵活的查询语言叫做DSL查询(Query DSL),它允许你构建更加复杂、强大的查询。

DSL(Domain Specific Language)特定领域语言)以JSON请求体的形式出现。(以下搜索语句总index表示你的index名称,type表示你的type名称)

例如要查找名字为“Jack”的文档:

GET /index/type/_search

{

"query":{

"match":{

"name":"Jack"

}

}

}

2、复杂搜索

如果我们需要查询名字为“Jack”且年龄大于30的文档。可以通过添加过滤器(filter),它使得我们高效率的执行一个结构化搜索:

GET /index/type/_search

{

"query":{

"filtered":{

"filter":{

"range":{

"age":{"gt":30}

}

}

},

"query":{

"match":{

"name":"Jack"

}

}

}

}

了解过MongoDB的同学可以发现,ElasticSearch的搜索方式和MongoDB的查询方式非常相似。

3、全文检索

例如我们要搜索文档中包含“basketball"的数据。

GET /index/type/_search

{

"query":{

"match":{

"about":"backetball"

}

}

}

4、短语搜索

例如我们需要查询同时包含basket和ball的记录

GET /index/type/_search

{

"query":{

"match_phrase":{

"about":"basket ball"

}

}

}

5、高亮搜索结果

很多应用喜欢高亮匹配到的关键字,这用用户可以知道为什么这些文档和查询相匹配。ElasticSearch高亮设置:

GET /index/type/_search

{

"query":{

"match_phrase":{

"about":"basket ball"

}

},

"highlight":{

"fields":{

"about":{}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值