通俗来讲就是在任何场景下你通过输入你想要搜索的内容,然后就期望找到相关度与之匹配的。 比如:
百度、Google等搜索引擎站内搜索(垂直搜索):淘宝等电商网站/app、招聘网站、新闻网站等 二、检索方式 1、数据库 2、倒排索引知道了数据库方式的缺点后再来看Elasticsearch所采取的倒排索引方式。
其实倒排索引本质上是一种数据结构,而不是我上面画的表格,我这里是为了容易理解,就采取了表格代理。这种方式原理上比较好理解。倒排索引后面会出专题来说明。
三、什么是Elasticsearch先说下lucene,lucene就是一个jar包,里面封装好了一些复杂的API以及包含了倒排索引,数据存储到磁盘。也就是说lucene是一种采取了倒排索引的方式进行高效率搜索的框架。但是它api复杂,且不支持集群。而Elasticsearch完美解决了lucene的这些缺点,它天然支持集群,api相对简单,开箱即用。底层还是封装的lucene。
四、Elasticsearch能干嘛 分布式搜索引擎和数据分析引擎搜索引擎:百度、Google、电商网站等 数据分析引擎:用户行为埋点,常用于大数据分析?你没发现你在某宝或某东搜个东西,后面都给你推送这类的吗?
全文检索、结构化搜索以及聚合 全文检索:全部内容里找包含的关键字: SELECT * FROM table WHERE name LIKE “%小米%”; 结构化搜索:也称等值匹配。 SELECT * FROM table WHERE name = “小米手机”; 聚合:比如我们分析每一个商品分类下有多少个商品。 SELECT category_id, COUNT(*) FROM table GROUP BY category_id; 海量数据近实时处理ES自动可以将海量数据分散到多台服务器上去存储和检索,分布式。 海量数据的处理:分布式以后,就可以采用大量的服务器去存储和检索数据,自然而然就可以实现海量数据的 近实时:检索个数据要花费好几分钟这就不叫近实时,ES可以在秒级别对数据进行搜索和分析。
五、Elasticsearch使用场景 百度、维基百科、新闻、电商、Stack Overflow等各大网站的用户行为日志(比如你搜个商品、你点击某个连接等)BI(Business Intelligence:商业智能),数据分析、挖掘GithubELK