深信服面试官,Elasticsearch超详细笔记,Java面试问题集合

查看自动生成的映射情况

GET kak_01/_mapping

在这里插入图片描述

核心数据类型:

字符型:string

  • string类型包括,text 和 keyword
*   text类型被用来索引长文本,在建立索引前会将这些文本进行分词,转化为词的组合,建立索引。允许es来检索这些词语。text类型不能用来排序和聚合。
*   Keyword类型不需要进行分词,可以被用来检索过滤、排序和聚合。
*   keyword 类型字段只能用本身来进行检索
  • 数字型:long, integer, short, byte, double, float
  • 日期型:date
  • 布尔型:boolean
  • 二进制型:binary

关键的属性:

  • “index”: true分词,false不分词,设置成false,字段将不会被索引;
  • “analyzer”:"ik"指定分词器,默认分词器为standard analyzer

PUT /lib

{

“settings”:{

“number_of_shards” : 3,

“number_of_replicas” : 0

},

“mappings”:{

“properties”:{

“title”:{“type”:“text”},

“name”:{“type”:“text”,“analyzer”:“standard”},

“publish_date”:{“type”:“date”,“index”:false},

“price”:{“type”:“double”}

}

}

}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 定义Mapping没有类型,之前能写进去是因为通过PUT,放文档放进去的;

8. 通用查询

===========================================================================

8.1 准备数据


PUT /lib2

{

“settings”:{

“number_of_shards” : 3,

“number_of_replicas” : 0

},

“mappings”:{

“properties”:{

“name”: {“type”:“text”},

“address”: {“type”:“text”},

“age”: {“type”:“integer”},

“interests”: {“type”:“text”},

“birthday”: {“type”:“date”}

}

}

}

PUT /lib2/_doc/1

{

“name” : “kak”,

“address” : “sx”,

“age” : 32,

“interests” : “java,music”,

“birthday”: “1988-08-08”

}

PUT /lib2/_doc/2

{

“name” : “taotao”,

“address” : “sz”,

“age” : 33,

“interests” : “java,music,money”,

“birthday”: “1983-08-08”

}

PUT /lib2/_doc/2

{

“name” : “taotao”,

“address” : “sz”,

“age” : 33,

“interests” : “java,music,money”,

“birthday”: “1983-08-08”

}

8.2 精确查找


term查询

8.2.1 查询某个字段里含有某个关键词的文档

GET /lib2/_search/

{

“query”: {

“term”: {

“name”: {

“value”: “kak”

}

}

}

}

在这里插入图片描述

8.2.2 查询某个字段里含有多个关键词的文档

GET /lib2/_search/

{

“query”: {

“terms”: {

“interests”: [

“java”,

“music”

]

}

}

}

在这里插入图片描述

8.3 设值返回的条数


GET /lib2/_search

{

“from”: 0,

“size”: 2,

“query”: {

“terms”: {

“interests”: [

“java”,

“music”

]

}

}

}

8.4 设值返回的版本


GET /lib2/_search

{

“version”: true,

“from”:0,

“size”: 2,

“query”: {

“terms”: {

“interests”: [

“java”,

“money”

]

}

}

}

在这里插入图片描述

8.5 分词查找


match query知道分词器的存在,会对filed进行分词操作,然后再查询

GET /lib2/_search

{

“query”: {

“match”: {

“name”: “kak helloworld”

}

}

}

在这里插入图片描述

8.6 指定多个字段进行查询


GET /lib2/_search

{

“query”: {

“multi_match”: {

“query”: “java”,

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

}

}

}

在这里插入图片描述

8.7 短语查询


ElasticSearch引擎首先分析查询字符串,从分析后的文本中构建短语查询,这意味着必须匹配短语中的所有分词,并且保证各个分词的相对位置不变

GET /lib2/_search

{

“query”: {

“match_phrase”: {

“interests”: “java,music”

}

}

}

在这里插入图片描述

8.8 指定返回的字段


GET /lib2/_search

{

“_source”: [“address”,“name”],

“query”: {

“match”: {

“interests”: “java”

}

}

}

在这里插入图片描述

8.9 排序


GET /lib2/_search

{

“query”: {

“match_all”: {}

},

“sort”: [

{

“age”: {

“order”: “desc”

}

}

]

}

在这里插入图片描述

8.10 前缀匹配


GET /lib2/_search

{

“query”: {

“match_phrase_prefix”: {

“name”: {

“query”: “kak”

}

}

}

}

在这里插入图片描述

8.11 范围查询


GET /lib2/_search

{

“query”: {

“range”: {

“birthday”: {

“from”: “1988-08-08”,

“to”: “2020-08-08”,

“include_lower”: true,

“include_upper”: false

}

}

}

}

在这里插入图片描述

8.12 通配符


允许使用通配符* 和 ?来进行查询:

  • *代表0个或多个字符
  • ?代表任意一个字符

GET /lib2/_search

{

“query”: {

“wildcard”: {

“name”: “kak*”

}

}

}

在这里插入图片描述

8.13 高亮查询


GET /lib2/_search

{

“query”: {

“match”: {

“interests”: “java”

}

},

“highlight”: {

“fields”: {

“interests”: {}

}

}

}

在这里插入图片描述

9. Bool过滤查询

===============================================================================

  • 可以实现组合过滤查询
  • must:必须满足的条件(and)
  • should:可以满足也可以不满足的条件(or)
  • must_not:不需要满足的条件(not )

GET /lib2/_search

{

“post_filter”: {

“bool”: {

“should”:[

{“term”:{“age”:32}},

{“term”:{“interests”:“java”}}

],

“must_not”:{

“term”:{“age”:90}

}

}

}

}

在这里插入图片描述

GET /lib2/_search

{

“post_filter”: {

“bool”: {

“must”:[

{“term”:{“age”:32}},

{“term”:{“interests”:“java”}}

]

}

}

}

在这里插入图片描述

10. 范围查找

============================================================================

  • gt:>
  • lt: <
  • gte: >=
  • lte: <=

GET /lib2/_search

{

“post_filter”: {

“range”: {

“age”: {

“gte”: 10,

“lte”: 32

}

}

}

}

在这里插入图片描述

11. 聚合查询

============================================================================

11.1 求和


sum:求和

GET /lib2/_search

{

“size”: 0,

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

Kafka实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图

image.png

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

image.png

  • Kafka的集群
  • 第一个Kafka程序
  • image.png

afka的生产者

image.png

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

image.png

image.png

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

image.png

  • Kafka实战之削峰填谷

image.png

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

[外链图片转存中…(img-Do7iIPDt-1712519876387)]

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

[外链图片转存中…(img-PT69pSO8-1712519876387)]

  • Kafka的集群
  • 第一个Kafka程序
  • [外链图片转存中…(img-LTvsmGyQ-1712519876388)]

afka的生产者

[外链图片转存中…(img-lcD3D9Fg-1712519876388)]

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

[外链图片转存中…(img-SOX5crOz-1712519876388)]

[外链图片转存中…(img-fycNRwgy-1712519876389)]

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

[外链图片转存中…(img-hlaoEV0y-1712519876389)]

  • Kafka实战之削峰填谷

[外链图片转存中…(img-CkNicB5r-1712519876389)]

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 30
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值