一、Elasticsearch是什么:
Elasticsearch底层是基于Lucene的Resful风格的分布式实时搜索引擎,可以快速的存储、搜索、分析海量数据。
二、Elasticsearch的基本概念、文档结构:
1、index索引:存储相似结构文档数据的地方,类似于mysql的数据库;
2、type类型:定义数据结构,类似于mysql的一张表;
3、document文档:文档的最小单元,类似于mysql中的一条数据;
4、Field字段:最小单位,一个文档可以有很多个字段,类似于mysql字段;
三、ElasticSearch的shard分片、replica副本
1、shard分片:es将一个索引分成多个shard分片,分布在多台服务器上,可以进行横向扩展,存储更多的数据,提升了吞吐量和性能;
2、replica副本:shard分片数据的备份,防止服务器故障或宕机时,数据不丢失,也能提升查询的吞吐量;
注:es 默认5个 shard 分片,1个 replica 副本,设置后不能修改
四、什么是倒排索引
在es搜索引擎中,每个文档都有对应的文档ID,文档经过分词器分词,关键词与文档ID进行映射,相当于倒排索引是一个关键词对应一系列的文件,通过倒排索引,可以记录每个关键词在文档中出现的次数和位置。
五、keyword和text的区别
1、keyword:不会进行分词,只能通过精确搜索查询;
2、text:会先进行分词,对分词的内容建立倒排索引,便于加快关键词搜索;
六、query和filter的区别
1、query:查询时会进行分值的计算,确认相关度;
2、filter:查询时是否满足条件,不会进行任何分数计算,结果排序,可以被缓存,提高性能;