附上:ElasticSearch从入门到精通,史上最全(持续更新,未完待续,每天一点点)_elasticsearch从入门到精通,史上最全-CSDN博客
1.ES中存储不是重要的,搜索查询功能才是ES的核心
2.ES提供了基于JSON的DSL(Domain Specific Language)来定义查询。
常见的查询类型:查询所有,全文索引,精确查询,地理查询,复合查询。
3.精确查询的值是不可分割的整体,所以可以采用精确查询来做。
4.ES是分布式的,并且会将数据切分开的存储到不同的服务器上。所以ES会面临深度分页问题。
5.ES还可以把搜索结果高亮显示。例如百度搜索Java,Java关键字会红色显示。
原理:服务端将搜索结果中的关键字用标签标记出来,然后在页面中给标签添加CSS样式。
6.ES中的数据聚合:
聚合可以实现对文档数据的统计,分析,运算,聚合常见有三类:
桶聚合:用来对文档做分组
度量聚合:用来计算一些值,比如最大值,最小值,平均值等
管道聚合:其他聚合的结果为基础做聚合
7.技术都是根据需求来的,业务场景的使用推动技术的发展。业务高于技术。技术为业务服务。
8.ES中的分词器,包含三个部分:
character filters:在tokenizer之前对文本进行处理。例如删除字符,替换字符
tokenizer:将文本按照一定的规则切割成词条。
tokenizer filter:将tokenizer输出的词条做进一步处理。例如大小写转换,同义词处理,拼音处理等。
9.ES实现自动补全功能的查询
自动补全对字段的要求:类型是completion类型,字段值是多词条的数组
10.ES && MySQL 对比:
ES中的index索引库就类似于MySQL中的数据库。
ES中的Type类型就类似于MySQL中对于表的定义。
ES中的document文档就是最终存储数据的地方,类似于MySQL中表的一条数据。
ES中的Field字段类似于MySQL中的列的概念。
ES中的shard分片:一台服务器,无法存储大量的数据,ES把一个index里面的数据,分为多个shard,分布式的存储在各个服务器上面。