一、如何搜索一首诗
如上两首诗,传统的需求是根据诗名查找诗内容,那么我们可以在数据库中建立包含诗名称和诗内容字段这样固定结构的Table即可。
但现在的需求变化了,我们要搜索包含“前”字的古诗词、搜索包含“月”字的古诗词等等。在数据量比较小的情况下可以使用表结构加模糊查询的方式,但如果数据量很大,已经超过数据库承受范围的情况下该如何做呢。此时对于一首古诗不便于更细粒度的结构化表示了。假如能够对“前”、“月”等等这些可能会被搜索的词建立一个类似下图的关系,岂不是利于诗词检索了。
这就是倒排索引的思想。
二、倒排索引
倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。
三、啥是ElasticSearch
Elasticsearch是一个基于Lucene的搜索服务器,采用倒排索引的思想。是一个分布式、高扩展、高实时的全文搜索与数据分析引擎。对外提供便捷的RESTful web接口。
四、名词预览
五、推荐文章
推荐一篇很赞的文章:终于有人把Elasticsearch原理讲透了!(一定得看哦)