1.Elasticsearch和elasticsearch-headr跨域问题

目录4. boot集成
ES 基础一网打尽
1.1 ES定义
ES=简写,是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据 。
也使用Java开发并使用作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 API来隐藏的复杂性,从而让全文搜索变得简单 。
1.2 与ES关系?
1)只是一个库 。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的 。
2)也使用Java开发并使用作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 API来隐藏的复杂性,从而让全文搜索变得简单 。
1.3 ES主要解决问题:
1)检索相关数据;
2)返回统计结果;
3)速度要快 。
1.4 ELK是什么?
ELK=++
:后台分布式存储以及全文检索
: 日志加工、“搬运工”
:数据可视化展示
1.和-headr跨域问题
首先保证两者启动成功
然后需要在的中找到的配置文件
添加两行配置,重启即可 。
和Solr的比较总结
2.的插件ik分词器
引入ik插件后,如何自定义自己的字典(用来分隔词)
在ik的创建一个后缀名为dic的文件,输入自己的分词 。
将写好的分词字典引入.cfg.xml中
3.的核心概念 索引字段类型()文档()分片(倒排索引)
对于初学者就可以把看作为数据库
数据库()
索引()
表())
types
行(row)
字段()
1.分片
一个集群至少有一个节点,而一个节点就是一个进程,节点可以有多个索引默认的有个5个分片(shard ,又称主分片)构成的,每一个主分片会有一个副本(shard ,又称复制分片)
上图是一个有3个节点的集群,可以看到主分片和对应的复制分片都不会在同一个节点内,这样有利于某个节点挂掉了,数据也不至于丢失 。实际上,一个分片是一个索引,一个包含倒排索引的文件目录,倒排索引的结构使得在不扫描全部文档的情况下,就能告诉你哪些文档包含特定的关键字
2.倒排索引(重点,数据库可能会问)
使用的是一种称为倒排索引的结构,采用倒排索作为底层,一个索引是由多个索引组成的 。这种结构适用于快速的全文搜索,一个索引由文档中所有不重复的列表构成,对于每一个词,都有一个包含它的文档列表 。
倒排索引是实现“单词-文档矩阵”的一种具体存储形式,通过倒排索引,可以根据单词快速获取包含这个单词的文档列表 。倒排索引主要由两个部分组成:“单词词典”和“倒排文件” 。将文档分解为单个词 根据词的出现的权重,返回相应的文档 。
3.基本Rest命令说明
特别注意类型 。是指不可分割类型,不会被分词器解析 。还有一些分页查询,布尔值查询,过滤器,精确查询,多个值匹配的精确查询,高亮查询 。
4. boot集成
引入依赖
版本号一定要和你下载的版本号一致
org.elasticsearch.clientelasticsearch-rest-high-level-client7.6.2
根据官方文档创建配置类
package com.yue.config;import org.apache.http.HttpHost;import org.elasticsearch.client.RestClient;import org.elasticsearch.client.RestHighLevelClient;import org.springframework.context.annotation.Bean;import org.springframework.stereotype.Component;@Componentpublic class ElasticSearchClientConfig {@Beanpublic RestHighLevelClient restHighLevelClient(){RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("127.0.0.1", 9200, "http")));return client;}}