查看自动生成的映射情况
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,放文档放进去的;
===========================================================================
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”
}
term查询
8.2.1 查询某个字段里含有某个关键词的文档
GET /lib2/_search/
{
“query”: {
“term”: {
“name”: {
“value”: “kak”
}
}
}
}
8.2.2 查询某个字段里含有多个关键词的文档
GET /lib2/_search/
{
“query”: {
“terms”: {
“interests”: [
“java”,
“music”
]
}
}
}
GET /lib2/_search
{
“from”: 0,
“size”: 2,
“query”: {
“terms”: {
“interests”: [
“java”,
“music”
]
}
}
}
GET /lib2/_search
{
“version”: true,
“from”:0,
“size”: 2,
“query”: {
“terms”: {
“interests”: [
“java”,
“money”
]
}
}
}
match query知道分词器的存在,会对filed进行分词操作,然后再查询
GET /lib2/_search
{
“query”: {
“match”: {
“name”: “kak helloworld”
}
}
}
GET /lib2/_search
{
“query”: {
“multi_match”: {
“query”: “java”,
“fields”: [“interests”,“name”]
}
}
}
ElasticSearch引擎首先分析查询字符串,从分析后的文本中构建短语查询,这意味着必须匹配短语中的所有分词,并且保证各个分词的相对位置不变
GET /lib2/_search
{
“query”: {
“match_phrase”: {
“interests”: “java,music”
}
}
}
GET /lib2/_search
{
“_source”: [“address”,“name”],
“query”: {
“match”: {
“interests”: “java”
}
}
}
GET /lib2/_search
{
“query”: {
“match_all”: {}
},
“sort”: [
{
“age”: {
“order”: “desc”
}
}
]
}
GET /lib2/_search
{
“query”: {
“match_phrase_prefix”: {
“name”: {
“query”: “kak”
}
}
}
}
GET /lib2/_search
{
“query”: {
“range”: {
“birthday”: {
“from”: “1988-08-08”,
“to”: “2020-08-08”,
“include_lower”: true,
“include_upper”: false
}
}
}
}
允许使用通配符* 和 ?来进行查询:
- *代表0个或多个字符
- ?代表任意一个字符
GET /lib2/_search
{
“query”: {
“wildcard”: {
“name”: “kak*”
}
}
}
GET /lib2/_search
{
“query”: {
“match”: {
“interests”: “java”
}
},
“highlight”: {
“fields”: {
“interests”: {}
}
}
}
===============================================================================
- 可以实现组合过滤查询
- 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”}}
]
}
}
}
============================================================================
- gt:>
- lt: <
- gte: >=
- lte: <=
GET /lib2/_search
{
“post_filter”: {
“range”: {
“age”: {
“gte”: 10,
“lte”: 32
}
}
}
}
============================================================================
sum:求和
GET /lib2/_search
{
“size”: 0,
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
Kafka实战笔记
关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图
- Kafka入门
- 为什么选择Kafka
- Karka的安装、管理和配置
- Kafka的集群
- 第一个Kafka程序
afka的生产者
- Kafka的消费者
- 深入理解Kafka
- 可靠的数据传递
- Spring和Kalka的整合
- Sprinboot和Kafka的整合
- Kafka实战之削峰填谷
- 数据管道和流式处理(了解即可)
- Kafka实战之削峰填谷
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
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、安卓逆向、云计算