北京南站地铁几号线,重庆快速网站推广,wordpress子页面不显示,企业网站建设的困难和问题什么是倒排索引
倒排索引#xff08;Inverted Index#xff09;是一种将文档中的每个单词映射到包含该单词的文档列表上的数据结构
倒排索引的构建过程
文档1: “我爱吃苹果”
文档2: “我爱吃香蕉”
文档3: “我喜欢苹果和香蕉” 文档分词#xff1a;将文档中的文本内容…什么是倒排索引
倒排索引Inverted Index是一种将文档中的每个单词映射到包含该单词的文档列表上的数据结构
倒排索引的构建过程
文档1: “我爱吃苹果”
文档2: “我爱吃香蕉”
文档3: “我喜欢苹果和香蕉” 文档分词将文档中的文本内容进行切分生成一系列的词项tokens。
文档1: [我, 爱, 吃, 苹果]
文档2: [我, 爱, 吃, 香蕉]
文档3: [我, 喜欢, 苹果, 和, 香蕉] 建立词项列表为每个唯一的词项创建一个列表记录包含该词项的文档和位置。这样就形成了一个词项-文档映射。 构建倒排表创建一个包含所有词项的表每个词项映射到其出现的文档ID及在文档中的位置。最终的结构类似于 我 - [doc1, doc2, doc3]
爱 - [doc1, doc2]
吃 - [doc1, doc2]
苹果 - [doc1, doc3]
香蕉 - [doc2, doc3]
喜欢 - [doc3]
和 - [doc3]
查询过程
当用户进行搜索时例如查询“苹果”Elasticsearch会查找倒排索引找到与“苹果”相关的文档列表在本例中为doc1和doc3并根据相关性可能还会计算TF-IDF、BM25等评分模型返回结果。
优化与扩展 压缩由于倒排索引可能会占用大量存储空间通常会对其进行压缩以减少存储成本。 分片和副本为了提高并发访问能力和故障恢复Elasticsearch允许把倒排索引分为多个分片shard和副本replica从而分散数据存储和请求处理的压力。