ElasticSearch 详解(一)

发布于 2021-10-16  96 次阅读


Lucene

Lucene 是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene 提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。

Lucene 是一个全文检索引擎的架构。那什么是全文搜索引擎?

全文搜索引擎是名副其实的搜索引擎,国外具代表性的有 Google、Fast/AllTheWeb、AltaVista、Inktomi、Teoma、WiseNut 等,国内著名的有百度(Baidu)。它们都是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户,因此他们是真正的搜索引擎。

从搜索结果来源的角度,全文搜索引擎又可细分为两种,一种是拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用,如上面提到的 7 家引擎;另一种则是租用其他引擎的数据库,并按自定的格式排列搜索结果,如 Lycos 引擎。

ElasticSearch

Elaticsearch 简称为 es,es 是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。es 使用 Java 开发并使用 Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API 来隐藏 Lucene 的复杂性,从而让全文搜索变得简单。

安装 ElasticSearch

下载并解压完压缩包,运行 bin 目录下的 elasticsearch.bat 文件就能用了。注意:如果内存较小,需要到 config 目录下的 jvm.options 文件中根据电脑的配置修改下面的配置。

#记得把配置前面的 # 去掉,要不然会作为注释是不生效的。
-Xms4g        #最小运行内存
-Xmx4g        #最大运行内存

测试

访问 localhost:9200,出现如下页面就是成功了。

ElasticSearch 详解(一)插图

ELK

ELK 是 Elasticsearch、Logstash、Kibana 三大开源框架首字母大写简称。市面上也被称为 ElasticStack。Logstash 是 ELK 的中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出到不同目的地(文件/MQ/redis/elasticsearch/kafka 等)。Kibana 可以将 elasticsearch 的数据通过友好的页面展示出来,提供实时分析的功能。

ElasticSearch 详解(一)插图1

安装 Kibana

同样的下载并解压完压缩包,运行 bin 目录下的 kibana.bat 文件就能用了。注意:Kibana 要和 es 版本一致。由于 Kibana 默认是英文语言,可以配置国际化改为中文,将 config 目录下的 kibana.yml 文件的最后一行改为 zh-CN。

#记得把配置前面的 # 去掉,要不然会作为注释是不生效的。
i18n.locale: "zh-CN"

测试

访问 localhost:5601,出现如下页面就是成功了。

ElasticSearch 详解(一)插图2