Elasticsearch:使用中文分词器及简单操作示例

一 Elasticsearch介绍

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

   概括的讲,ES主要负责了两件事情:分布式搜索引擎和数据分析引擎+海量数据的实时处理。在百度、维基百科、新闻、电商、数据挖掘等多个领域都能见到ES的使用。

        Elasticsearch 的特点包括:

  • 分布式设计:能够横向扩展,支持大规模集群和数据量。
  • 全文搜索:基于反向索引,可以进行快速的全文检索。
  • 实时搜索:数据一旦被索引,几乎可以立即搜索到。
  • RESTful API:通过 HTTP 接口和 JSON 进行交互,使用简单且与多种编程语言兼容。
  • 高可用性:支持自动分片和复制,具备强大的容错性和高可用性。

二 常用术语

        Document(文档):Elasticsearch 中的最小数据单元,类似于关系型数据库中的一行数据。每个文档是一个 JSON 对象,存储着结构化或半结构化的数据。

        Index(索引):一个索引类似于关系型数据库中的表,包含了一系列具有相同结构的文档。通过索引可以对文档进行快速查询和检索。

        Type(类型)(已弃用):Elasticsearch 7.0 之前,一个索引可以包含多种类型的文档,每个文档都有不同的结构。每个文档的类型通过 _type 字段来区分。之后的版本中已逐渐弃用 type 概念,一个索引只能包含一种文档类型。

        Field(字段):每个文档由多个字段组成,类似于关系型数据库中的列。字段包含不同的数据类型(如文本、数字、日期、布尔值等)。

        Shards(分片)分片 是将一个大索引分割成多个小的子集。Elasticsearch 自动将数据分片,这样可以提高数据的处理能力,并且能够在多个节点上平衡负载。每个索引在创建时会被划分为多个主分片(Primary Shard)。

        Replica(副本)副本 是分片的一个拷贝,用于提高查询性能和数据冗余。主分片出现故障时,副本分片可以代替它继续服务,从而保证系统的高可用性。

        Cluster(集群)集群 是一组 Elasticsearch 节点组成的系统,每个集群都有一个唯一的名字。集群中的每个节点协同工作,分担数据存储、查询和索引操作。

        Node(节点)节点 是集群中的一个单独服务器或实例,每个节点存储索引数据并参与集群的搜索和索引操作。节点之间通过共享数据和任务进行协调。

三 Elasticsearch及中文分词器的下载安装

        在官网Download Elasticsearch | Elastic下载我们需要的版本,我这里由于项目需要,下载的是6.4.3版本。

        下载好后,应该是一个压缩包,我们把它解压缩到任意目录下,找到config目录下的elasticsearch.yml文件,修改以下配置信息: 

        接下来,打开GitHub下载中文分词器,注意版本要对应。把下载好的文件夹粘贴到Elasticsearch安装目录的plugins目录下。

        我们找到bin目录下的elasticsearch.bat文件,双击启动。

        Ps:这时可能会出现双击无法启动的问题,我们用cmd进行启动,查看报错信息如下:

也就是nrecognized VM option 'UseConcMarkSweepGC错误。我们找到config目录下的jvm.options文件,将

-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly

这几行代码注释掉:

        再次启动即可成功启动了。在浏览器中访问127.0.0.1:9200验证是否启动成功。

四 Elasticsearch的使用示例        

1.验证启动是否成功

        打开一个新的cmd窗口(不要关闭刚才的窗口),输入命令

curl -X GET "localhost:9200/"

2.查看集群状态(使用v显示表头)

>curl -X GET "localhost:9200/_cat/health?v"

        基于status来判断集群集群状态  green、yellow、red。green:每个索引的primary shard 和replica shard 都是active 状态的;yellow: 每个索引的primary shard 是active状态的,但部分replica shard不是active状态的。(当只有一个Node, replica shard 没有第二台机器进行分配);red: 不是所有primary shard 都是active状态,说明部分数据丢失了。

3. 使用postman进行使用测试——增

4. 使用postman进行使用测试——查

5. 使用postman进行使用测试——删

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值