term query和match query分析
elasticsearch keyword text
matchQuery wildCardQuery 比较
分词器、mapping、倒排索引等
倒排索引:
单词词典: B树,Hash表
倒排列表: docId(文档Id), TF(Term Frequency), POS(单词在文档中的位置)
text, keyword:
text: es先进行分词,然后再进行查询;
keyword: es会进行精确搜索;
es深度分页和滚动搜索
深度分页: 深度分页就是我们理解的普通的分页,由于担心性能问题,不会超过10000条数据以上的分页查询;
滚动搜索: scroll;
倒排索引(Inverted Index):倒排索引是实现“单词-文档矩阵”的一种具体存储形式,通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。倒排索引主要由两个部分组成:“单词词典”和“倒排文件”。
单词词典(Lexicon):搜索引擎的通常索引单位是单词,单词词典是由文档集合中出现过的所有单词构成的字符串集合,单词词典内每条索引项记载单词本身的一些信息以及指向“倒排列表”的指针。
倒排列表(PostingList):倒排列表记载了出现过某个单词的所有文档的文档列表及单词在该文档中出现的位置信息,每条记录称为一个倒排项(Posting)。根据倒排列表,即可获知哪些文档包含某个单词。
倒排文件(Inverted File):所有单词的倒排列表往往顺序地存储在磁盘的某个文件里,这个文件即被称之为倒排文件,倒排文件是存储倒排索引的物理文件。
倒排索引涉及到的数据结构:
参考: