2024年Java最全ElasticSearch中DSL高级检索(Query),2024大厂Java高级面试题及答案

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

在这里插入图片描述

最新整理电子书

在这里插入图片描述

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

5. 范围查询(range)

range 关键字 : 用来指定查询指定范围内的文档

#range 范围查询 根据年龄搜索 0-10 等价于关系型数据库的betweend–and

gte:大于等于 gt:大于 lt:小于 lte:小于等于

GET /ems/emp/_search

{

“query”: {

“range”: {

“age”: {

“gte”: 0,

“lte”: 10

}

}

}

}

6. 前缀查询(prefix)

prefix 关键字 : 用来检索含有指定前缀的关键词的相关文档

前缀查询(prewfix) like “x%”

GET /ems/emp/_search

{

“query”: {

“prefix”: {

“address”: {

“value”: “北”

}

}

}

}

7. 通配符查询(wildcard)

wildcard 关键字 : 通配符查询 ? 用来匹配一个任意字符 * 用来匹配多个任意字符

#通配符查询(wildcard)

?匹配一个字符 *可以匹配多个字符

GET /ems/emp/_search

{

“query”: {

“wildcard”: {

“content”: {

“value”: “re*”

}

}

}

}

?匹配一个字符

GET /ems/emp/_search

{

“query”: {

“wildcard”: {

“content”: {

“value”: “sprin?”

}

}

}

}

8. 多id查询(ids)

ids 关键字 : 值为数组类型,用来根据一组id获取多个对应的文档

#多id查询

GET /ems/emp/_search

{

“query”: {

“ids”: {

“values”: [“dPMrnX0BfC_D9Fr1AcjP”,“c_MrnX0BfC_D9Fr1AcjP”]

}

}

}

9. 模糊查询(fuzzy)

fuzzy 关键字 : 用来模糊查询含有指定关键字的文档

#fuzzy 模糊查询 用来模糊查询含有指定关键字的文档

#规则:

搜索关键词长度为2 不允许存在模糊

GET /ems/emp/_search

{

“query”: {

“fuzzy”: {

“content”: “北京”

}

}

}

搜索关键词长度为3~5 允许一次模糊 把mvc写成mvx

GET /ems/emp/_search

{

“query”: {

“fuzzy”: {

“content”:“mvx”

}

}

}

搜索关键词长度为5以上 允许最大模糊数2个 将spring写成xprinx

GET /ems/emp/_search

{

“query”: {

“fuzzy”: {

“content”: “xprinx”

}

}

fuzzy 模糊查询 最大模糊错误 必须在0-2之间

搜索关键词长度为 2 不允许存在模糊 0

搜索关键词长度为3-5 允许一次模糊 0 1

搜索关键词长度大于5 允许最大2模糊

10. 布尔查询(bool)

bool 关键字 : 用来组合多个条件实现复杂查询

must: 相当于&& 同时成立

should: 相当于|| 成立一个就行

must_not: 相当于! 不能满足任何一个

#bool 布尔查询 && || !

bool关键字 用来组合多个条件实现复杂查询

#must 相当于&&同时成立

#should 相当于||成立一个

must_not :相当于! 不满足任何一个条件

GET /ems/emp/_search

{

“query”: {

“bool”: {

“must”: [

{

“term”: {

“content”: {

“value”: “框”

}

}

}

],“must_not”: [

{“term”: {

“name”: {

“value”: “黑”

}

}}

],

“should”: [

{

“ids”: {

“values”: [“c_MrnX0BfC_D9Fr1AcjP”]

}

}

]

}

}

}

11. 高亮查询(highlight)

highlight 关键字 : 可以让符合条件的文档中的关键词高亮

GET /ems/emp/_search

{

“query”: {

“term”: {

“content”: {

“value”: “redis”

}

}

},

“highlight”: {

“fields”: {

“*”: {}

}

}

}

自定义高亮html标签 : 可以在highlight中使用pre_tagspost_tags

GET /ems/emp/_search

{

“query”:{

“term”:{

“content”:“框架”

}

},

“highlight”: {

“pre_tags”: [“”],

“post_tags”: [“”],

“fields”: {

“*”:{}

}

}

}

多字段高亮 使用require_field_match开启多个字段高亮

12. 多字段查询(multi_match)

#查询所有

GET /ems/emp/_search?q=*

#multi_match 多字段查询

GET /ems/emp/_search

{

“query”: {

“multi_match”: {

“query”: “框”,

#这里写要检索的指定字段

“fields”: [“name”,“content”]

总结

其他的内容都可以按照路线图里面整理出来的知识点逐一去熟悉,学习,消化,不建议你去看书学习,最好是多看一些视频,把不懂地方反复看,学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。

这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来

目录:

部分内容截图:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

检索的指定字段

“fields”: [“name”,“content”]

总结

其他的内容都可以按照路线图里面整理出来的知识点逐一去熟悉,学习,消化,不建议你去看书学习,最好是多看一些视频,把不懂地方反复看,学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。

这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来

目录:

[外链图片转存中…(img-sqt2dXwC-1714851116725)]

部分内容截图:

[外链图片转存中…(img-NLwRYXS2-1714851116726)]

[外链图片转存中…(img-XU2NLaLt-1714851116726)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 17
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
回答: Elasticsearch是一个基于Lucene库的搜索引擎,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。它使用倒排索引的结构来存储数据,并通过分词和查询来提高搜索效率。在Java面试,可能会问到与Elasticsearch相关的问题,例如如何在Java使用Elasticsearch进行数据搜索和聚合,如何处理Elasticsearch的分布式特性等。在使用Elasticsearch时,可以通过模糊查询来提高数据搜索的效率,特别适用于大数据量的情况。此外,Elasticsearch还可以用于收集、聚合和解析日志或事务数据,并使用Kibana来进行数据分析和可视化。对于有分析/业务智能需求的场景,Elasticsearch也可以存储大量数据,并使用Kibana构建自定义仪表板来可视化数据的各个方面。因此,对于Java开发者来说,了解如何使用Elasticsearch进行数据搜索、聚合和可视化是非常重要的。 #### 引用[.reference_title] - *1* [java面试题Elasticsearch面试突击【2022最新】](https://blog.csdn.net/m0_63270506/article/details/124245529)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [1W字解析常见ES面试题(建议收藏)](https://blog.csdn.net/a934079371/article/details/108633556)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值