上一篇我们说了我们可以把 Elasticsearch 看作是一个数据库,但是它被更多人知道和记住是因为它的全文检索能力,这几乎成了 ES 的代名词,全文检索的原理就是我们这一篇需要重点讲解的“倒排索引”,面试中只要出现 ES 相关的内容,那么倒排索引的问题就是必不可少的,
本篇面试内容划重点:倒排索引、设计上的优化、选主。
倒排索引
全文检索有什么用?举个例子,我们平时去图书馆找书会用检索系统来根据条件找自己需要的书籍。这是很平常的需求,再苛刻一些,我们需要找到一段文字出自于哪本书。ES 可以做到这些,它会把每一本书的内容开分成一个一个词语(分词),然后让分出来的词指向这本书,如果另一本书也有相同的词,那么这个词会指向两本书。ES 做好了这些工作后,当我们检索一段文字时,它 会去库中匹配之前分的词,然后按照相似度排列,把词指向的书名返回,这样我们就知道这段文字最可能来自于哪本书了。 (图片来自官网) 再正式地介绍一下,倒排索引是用于快速全文检索的一种索引结构,一个倒排索引由文档中所有不重复词的列表构成,对于其中每个单词,