“ignore_above” : 256
}
}
},
“language” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
},
“price” : {
“type” : “float”
},
“publish_time” : {
“type” : “date”
},
“title” : {
“type” : “text”,
“fields” : {
“keyword” : {
“type” : “keyword”,
“ignore_above” : 256
}
}
}
}
}
}
}
}
验证检索
- 执行以下检索命令验证检索:
GET book/_search
{
“query”: {
“match”: {“title”:“Elasticsearch”}
}
}
第一条记录都可以搜索到,证明description字段已经被分词和索引了;
2. title字段还有一种索引方式keyword,也来试试,查keyword是要用完整内容做查询条件的,如下:
GET book/_search
{
“query”: {
“term”: {“title”:“Elasticsearch IN ACTION”}
}
}
得到的结果如下,没有记录:
{
“took” : 0,
“timed_out” : false,
“_shards” : {
“total” : 5,
“successful” : 5,
“skipped” : 0,
“failed” : 0
},
“hits” : {
“total” : 0,
“max_score” : null,
“hits” : [ ]
}
}
这是怎么回事呢?对于这种sub-field的查询,不能直接使用title,而是要用title.keyword,改成如下请求:
GET book/_search
{
“query”: {
“term”: {“title.keyword”:“Elasticsearch IN ACTION”}
}
}
这次顺利查到:
{
“took” : 0,
“timed_out” : false,
“_shards” : {
“total” : 5,
“successful” : 5,
“skipped” : 0,
“failed” : 0
},
“hits” : {
“total” : 1,
“max_score” : 0.2876821,
“hits” : [
{
“_index” : “book”,
“_type” : “es”,
“_id” : “101”,
“_score” : 0.2876821,
“_source” : {
“title” : “Elasticsearch IN ACTION”,
“language” : “java”,
“author” : “Radu Gheorghe”,
“price” : 58.8,
“publish_time” : “2018-10-01”,
“description” : “本书主要展示如何使用Elasticsearch构建可扩展的搜索应用程序。”
}
}
]
}
}
验证聚合
执行以下命令,以language字段进行分组,统计每个分组的文档数:
GET book/_search
{
“aggs”: {
“per_count”: {
“terms”:{
“field”:“language.keyword”
}
}
}
}
得到结果如下,可以成功统计language字段为java的文档数量为2,可见动态映射给language设定的keyword类型能够直接用于聚合(text类型不能直接用于聚合,会返回status=400错误,修改参数后可以将text类用于聚合,但是会消耗更多内存资源):
{
“took” : 2,
“timed_out” : false,
“_shards” : {
“total” : 5,
“successful” : 5,
“skipped” : 0,
“failed” : 0
},
“hits” : {
“total” : 2,
“max_score” : 1.0,
“hits” : [
{
“_index” : “book”,
“_type” : “es”,
“_id” : “101”,
“_score” : 1.0,
“_source” : {
“title” : “Elasticsearch IN ACTION”,
“language” : “java”,
“author” : “Radu Gheorghe”,
“price” : 58.8,
“publish_time” : “2018-10-01”,
“description” : “本书主要展示如何使用Elasticsearch构建可扩展的搜索应用程序。”
}
},
{
“_index” : “book”,
“_type” : “es”,
“_id” : “102”,
“_score” : 1.0,
“_source” : {
“title” : "ELK Stack权威指南 ",
“language” : “java”,
“author” : “拉斐尔·酷奇”,
“price” : 62.4,
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
中…(img-3ZsygwUC-1715671178842)]
[外链图片转存中…(img-zGLZyoym-1715671178843)]
[外链图片转存中…(img-8n9ODbON-1715671178843)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!