ElasticSearch(五)【索引原理】 淡淡的烟草味﹌ 2024-04-06 10:34 17阅读 0赞 ### 五、索引原理 ### -------------------- #### 5.1 倒排索引 #### **倒排索引**(Inverted Index)也叫反向索引,有反向索引必有正向索引。通俗地来讲,**正向索引是通过key找value,反向索引则是通过value找key**。ES底层在检索时,底层使用的就是倒排索引 ES索引可以总结为:索引区和元数据区 * 索引区:用于存放对文档分词之后的数据模型(value-\_id) * 元数据区:用于存放原始文档,一行记录(\_id-record) 先去索引区,再去元数据区寻找 > 例子如下 **映射字段** "product" : { "mappings" : { "properties" : { "title" : { "type" : "keyword" }, "description" : { "type" : "text" } } } } 录入的数据如下 <table> <thead> <tr> <th align="center">_id</th> <th align="center">title</th> <th align="center">description</th> </tr> </thead> <tbody> <tr> <td align="center">1</td> <td align="center">香蕉</td> <td align="center">我喜欢香蕉</td> </tr> <tr> <td align="center">2</td> <td align="center">苹果</td> <td align="center">喜欢吃苹果</td> </tr> <tr> <td align="center">3</td> <td align="center">水果</td> <td align="center">喜欢水果</td> </tr> </tbody> </table> 在ES中,除了text类型分词,其它类型不分词,因此根据不同字段创建索引如下 * **title字段** <table> <thead> <tr> <th align="center">term</th> <th align="center">_id(文档id)</th> </tr> </thead> <tbody> <tr> <td align="center">香蕉</td> <td align="center">1</td> </tr> <tr> <td align="center">苹果</td> <td align="center">2</td> </tr> <tr> <td align="center">水果</td> <td align="center">3</td> </tr> </tbody> </table> * **description字段** <table> <thead> <tr> <th align="center">term</th> <th align="center">_id</th> <th align="center">term</th> <th align="center">_id</th> <th align="center">term</th> <th align="center">_id</th> </tr> </thead> <tbody> <tr> <td align="center">我</td> <td align="center">1</td> <td align="center">吃</td> <td align="center">2</td> <td align="center">水</td> <td align="center">3</td> </tr> <tr> <td align="center">喜</td> <td align="center">[1:1:5,2:1:5,3:1:4]</td> <td align="center">苹</td> <td align="center">2</td> <td align="center"></td> <td align="center"></td> </tr> <tr> <td align="center">欢</td> <td align="center">[1:1:5,2:1:5,3:1:4]</td> <td align="center">果</td> <td align="center">[2:1:5,3:1:4]</td> <td align="center"></td> <td align="center"></td> </tr> <tr> <td align="center">香</td> <td align="center">1</td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> </tr> <tr> <td align="center">蕉</td> <td align="center">1</td> <td align="center"></td> <td align="center"></td> <td align="center"></td> <td align="center"></td> </tr> </tbody> </table> \[**文档id**:**term出现次数**:**文档id记录的长度**\]
还没有评论,来说两句吧...