初学elasticsearch——除了CRUD之外我还需要关注es的哪些问题

1.倒排索引是如何工作的

倒排索引中主要有词条和文档两个概念:词条是分词后产生的词语,每条数据都有对应的文档(被序列化好的json串)

倒排索引就是把词条、文档ID记录下来,每当出现一个重复的词条都会追加在文档ID

如下图,词条是不会重复的

 在查询的时候,我们会先对搜索内容进行分词,根据分词去倒排索引中查询文档id,根据文档id查询文档,最终返回结果集。

 

2.字段介绍

_source:在存储的时候就是存储了原始文档_source和倒排索引两种信息。

index:是否在es中建立索引,默认是true

store:是否在es中存储,默认为false(这个其实是lucene的功能,es中的_source已经取代了他)

 

X.es中的删除是真的删除吗

当es中使用delete删除某文档时,他并不会立刻删除该文档,而是给元数据一个标记该文档已删除

es基于lucene,lucene将索引数据分为多个段segments,每个段都是一个独立的索引文件,当文档被标记为删除时会使这些删除操作记录在一个删除文件中

es会定期执行段合并操作来删除删除文件中的文件;

此外es还提供了一个删除缓存,在删除大量文档时,缓存的删除会被持久化到删除文件中

 

X1.es为什么占内存那么大

es使用了多级缓存提高查询速度,使用内存映射文件来提高文件访问速度,同时es还是基于JVM的

posted @ 2024-11-04 21:07  天启A  阅读(9)  评论(0)    收藏  举报