如何安装与设置Elasticsearch API

如何安装与设置Elasticsearch APIhtml

到目前为止,在本系列文章中,我一直在撰写有关Elasticsearch和Elastic堆栈组件的通常知识。
系列文章列表
01.ElasticSearch能作什么?
02.Elastic Stack功能介绍
03.如何安装与设置Elasticsearch APIjava

若是想找更实操的操做手册,我推荐你看这篇从小白到大师成长_ElasticSearch入门教程_web

从本文开始,咱们将开始深刻研究Elasticsearch API。在本文中,咱们将主要侧重于Elasticsearch的安装,而后学习如何使用Elasticsearch提供的基本CRUD API。咱们还将安装一个名为elasticsearch-head的第三方应用程序,以查看UI中的更改。
1.安装Elasticsearch
首先,让咱们首先在系统中安装和配置Elasticsearch。在本教程中,我将Ubuntu 16.04用做具备8GB RAM的计算机上的操做系统。数据库

1.1 Java安装
正如咱们在以前的博客中所看到的那样,Elasticsearch是创建在名为Lucene的库之上的,而Lucene又是创建在Java之上的。所以,Java是安装Elasticsearch的先决条件。如下是在计算机中安装Java的步骤:
sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update
sudo apt-get install oracle-java8-installer
1.2 Elasticsearch安装
让咱们看看如何在此处将Elasticsearch做为服务安装。oracle

  1. 在此处下载最新版本的Elasticsearch
  2. 输入

sudo dpkg -i elasticsearch-5.6.3.debcors

完成上述安装后,键入
sudo service elasticsearch startcurl

以启动服务。
这将在您的本地环境中做为服务安装并启动elasticsearch。
elasticsearch运行的默认端口是9200。要检查它是否正在运行,只需在终端中键入如下命令:
curl localhost:9200jvm

上面的命令将致使以下所示的响应:elasticsearch

{
  “name” : “9CCT_A1”,
  “cluster_name” : “elasticsearch”,
  “cluster_uuid” : “QqZcNgcdRDW8sWMaLNf-Jg”,
  “version” : {
    “number” : “5.6.3”,
    “build_hash” : “1a2f265”,
    “build_date” : “2017–10–06T20: 33: 39.012Z”,
    “build_snapshot” : false,
    “lucene_version” : “6.6.1”
  },
  “tagline” : “YouKnow,
  forSearch”
}

1.3配置文件
在Elasticsearch世界中最重要的事情之一就是正确配置它。咱们应该熟悉Elasticsearch中两个重要的配置文件。这些是 :
1.3b elasticsearch.yml
此配置文件容许使用许多配置选项,例如更改elasticsearch的端口,定义集群中的节点,解决cors问题等。
该配置文件的位置在文件夹“ etc / elasticsearch”下。在这里,您能够看到elasticsearch.yml文件。学习

1.3b jvm.options.yml
yml文件中的配置包含在5.x以前版本的elasticsearch.yml中。此处的配置负责Java虚拟机内存管理。此配置文件的位置也位于
etc/elasticsearch

。咱们将在之后的博客中详细介绍这一点。

  1. Elasticsearch中的索引,类型和文档

至此,咱们已经成功在系统中安装了elasticsearch。如今让咱们熟悉Elasticsearch中的基本数据存储模型。正如咱们在以前的博客中提到的那样,Elasticsearch是一个NoSql数据库。

所以,在这里,代替SQL世界中的数据库,表,行是希拉基,最接近的希拉基类比是索引,类型和文档。这意味着,当文档(应为JSON格式)保存在Elasticsearch中时,其地址看起来像

index name:这相似于SQL world中的数据库名称。这是必不可少的信息。Elasticsearch可能包含许多索引,而且要存储的文档应提供失败的索引名称,这将致使错误,由于Elasticsearch没法肯定文档属于哪一个索引。此外,索引名称不支持大写和某些特殊字符。

type name:Elasticsearch中的类型相似于SQL世界中数据库下的表。所以,索引下能够有多个表。表格下能够有多个文档。若是咱们没有给文档提供类型名称,elasticsearch仍将使用默认类型名称进行索引。

document ID:文档的惟一ID。能够由将文档放到Elasticsearch的用户提供,或者若是没有提供,Elasticsearch会自动生成一个惟一值。

注意:“索引名称+类型名称+文档ID”的组合对于elasticsearch中的每一个文档都是惟一的
下图显示了具备多个索引的典型elasticsearch数据库的外观。
1590844700661-5e32131e3bf149b7.png
3 CRUD操做-命令行
如今,咱们对Elasticsearch中的数据混乱有了一个基本的想法。在本节中,让咱们使用命令行界面在Elasticsearch中执行一些基本的CRUD操做。
3.1建立索引
从上一节中咱们知道,要将文档存储在Elasticsearch中,咱们须要指定索引名称。所以,重要的是在存储任何此类文档以前建立索引。让咱们
test_index_01

从终端建立一个名为“ ” 的索引,以下所示:
curl -XPUT localhost:9200/test_name_01

上面的命令将产生以下所示的响应:

{
 “acknowledged”: true,
 “shards_acknowledged”: true,
 “index”: ”test_index_01" 
}

3.2创建文件
如今咱们已经建立了索引,咱们能够将文档索引到elasticsearch。
在这种状况下,咱们将为文档ID等于1的文档创建索引(存储)。能够按照如下步骤进行操做:

curl -XPUT localhost:9200/test_index_01/test_type_01/1 -d ‘{
 “name”: ”ArunMohan”,
 “age”: 32
}’

在上述请求中,如下是咱们传递给elasticsearch的数据的分割信息

indexname: test_index_01
type_name: test_type_01
documentid: 1
document : {
  “name”: “ArunMohan”,
  “age”: 32
}

以上请求将致使以下响应:

{
  _index: test_index_01,
  _type: test_type_01,
  _id: 1,
  _version: 1,
  result: created,
  _shards: {
    total: 2,
    successful: 1,
    failed: 0
  },
  created: true
}

在响应中,咱们再次能够看到索引名称(“ index”),类型名称(“ _type”),文档ID(“ id”)。还将操做状态做为“已建立”值。“ created”的值是true,表示文档索引成功。
3.3阅读文件
可使用带有索引名称,类型名称和其中指定的文档ID的GET请求从elasticsearch中检索文档。这充当该文档的准确地址(前提是所传递的全部三个信息都是准确的),Elasticsearch将为咱们获取该文档。让咱们看看如何检索刚刚索引的文档。

curl -XGET localhost:9200/test_index_01/test_type_01/1
上面的请求将返回以下响应:

{
  _index: test_index_01,
  _type: test_type_01,
  _id: 1,
  _version: 1,
  found: true,
  _source: {
    name: ArunMohan,
    age: 32
  }
}

在以上响应中,咱们能够看到文档位于响应的“ _source”对象下。元数据包括其余信息和检索状态为“已找到”。
3.4更新文件
若是须要更新已经创建索引的文档的字段怎么办?Elasticsearch为咱们提供了此操做的更新API。在咱们的示例中,假设我要使用新值31更新年龄字段。对此的请求以下所示:
curl -XPOST localhost:9200/test_index_01/test_type_01/1/_update -d '{"doc":{"age":31}}'

您可能已经注意到,我在请求中仅给出了必填字段和该字段的新值({“ age”:31})。在名为“ doc”的对象下也是如此。该请求还包含有关要更新的文档的全部信息(索引名称,类型名称和文档ID),以便Elasticsearch能够找到该文档并对该特定字段进行更改(这不是它的确切工做方式,而是目前,咱们正在深潜)。如今,若是文档中不存在这样的字段,Elasticsearch将在文档中建立一个这样的字段。
对于以上请求,咱们将得到如下响应:

{
  "_index": "test_index_01",
  "_type": "test_type_01",
  "_id": "1",
  "_version": 2,
  "result": "updated",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  }
}

在以上响应的结果字段中,咱们能够看到状态为“已更新”,代表更新成功。
3.5删除文件
删除相似于前面提到的内容。只需提供索引名称,类型名称和要删除的文档以及请求的文档ID,便可将其删除,以下所示:
curl -XDELETE localhost:9200/test_index_01/test_type_01/1

这将使咱们获得以下响应:

{
  "found": true,
  "_index": "test_index_01",
  "_type": "test_type_01",
  "_id": "1",
  "_version": 3,
  "result": "deleted",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  }
}

结论在本文中,咱们已经看到了Elasticsearch的安装,而后是其上的基本CRUD操做。在本系列的下一个博客中,咱们将看到如何在同一系统上使用多个elasticsearch实例。

相关文章
相关标签/搜索