这是我参与 8 月更文挑战的第 2 天,活动详情查看: 8月更文挑战
先说一下未来几天的思路,是这么回事,接到一个需求,统计某地用户一年的流水详细数据,然后当这个用户要进行某些操作时会进行查询匹配这条数据的标志,取到标志然后进行代码逻辑判断,需求很简单,但是客户强烈要求ES实现,(虽然ES可能会拖慢项目)
既然要用ES,可我是小白啊,怎么办,那就一起从头学习吧!!!
什么是ES
我们看下官网的解释:Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
它的底层是开源库Apache Lucene,用java对其进行封装,Elasticsearch是最受欢迎的企业搜索引擎;近实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,价值数据的真正体现。
为什么是ES
这里还是援引官方的话术:
能够执行及合并多种类型的搜索(结构化数据、非结构化数据、地理位置、指标),搜索方式随心而变;
对大数据量的分析游刃有余;
通过倒排索引、列模式让检索能力非常快(近实时)
适用于所有类型,
分布式、热备份;稳定性非常可靠;
安装我就不说了,网上很多教程,
在浏览器中输入网址“http://localhost:9200/”,如果看到以下信息就说明你的电脑已成功安装Elasticsearch:
{
"name" : "master",
"cluster_name" : "es_cluster",
"cluster_uuid" : "NzeIhykVQDaPCOkD-vPtJA",
"version" : {
"number" : "7.8.1",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "b5ca9c58fb664ca8bf9e4057fc229b3396bf3a89",
"build_date" : "2020-07-21T16:40:44.668009Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
如果你想要交互,你可以用kibana来进行交互;界面还是挺清爽的,
ES可以做什么
在我们需要对大批量数据进行操作时,传统数据存储已经很难进行数据解析了,这是就需要搜索引擎了,而ES的倒排索引很好的解决了这个问题;
第三方工具Kibana界面是非常漂亮的,你可以在界面上进行各种相关操作,简化时间;
当我们需要对数据全局进行模糊搜索时,或者我们只知道部分关键字,比如你百度“java程序”这两个字,它包含的结果会是所有包含java和程序以及java程序
如果你去百度搜索,也许能更好的感受到分词器带来的好处,你也许会问分词的规则是啥,我只能说我也说不好,但肯定是按场景分析,这也是公司对数据不计成本进行分析的原因;
在对数据进行分析归类后会有优先级排名,不同的产品定位不同,比如百度“衣服”关键字和小红书“衣服”关键字搜出来的优先级肯定不一样,因为产品的定位不同;
好了,说这么多es,其实es不单单只能做搜索有兴趣大家可以去官网看看,当然,部分收费,哈
好了,就说这么多入门,下篇开始了解它的工作模式