一丶使用前准备
1.windows版
下载地址
2.chrome 插件 Sense
3.解压后,打开elasticsearch.bat ,初步安装完成。
二丶开始简单实用
1.查看数据健康状态
localhost:9200/_cat/health?v
当我们询问集群状态的时候,我们要么得到绿色、黄色或红色。绿色代表一切正常(集群功能齐全),黄色意味着所有的数据都是可用的,但是某些复制没有被分配 (集群功能齐全),红色则代表因为某些原因,某些数据不可用。注意,即使是集群状态是红色的,集群仍然是部分可用的(它仍然会利用可用的分片来响应搜索请 求),但是可能你需要尽快修复它,因为你有丢失的数据。
也是从上面的响应中,我们可以看到,一共有一个节点,由于里面没有数据,我们有0个分片。注意,由于我们使用默认的集群名字 (elasticsearch),并且由于Elasticsearch默认使用网络多播(multicast)发现其它节点,如果你在你的网络中启动了多 个节点,你就已经把她们加入到一个集群中了。在这种情形下,你可能在上面的响应中看到多个节点。
2.获得节集群中的节点列表
localhost:9200/_cat/nodes?v
3.列出所有的索引
localhost:9200/_cat/indices?v
这个结果意味着,在我们的集群中,我们没有任何索引。
4.让我们创建一个叫做“customer”的索引,然后再列出所有的索引
localhost:9200/customer?pretty (注意这个是put请求)
localhost:9200/_cat/indices?v
第二个命令的结果告知我们,我们现在有一个叫做customer的索引,并且它有5个主分片和1份复制(都是默认值),其中包含0个文档。
你可能也注意到了这个customer索引有一个黄色健康标签。回顾我们之前的讨论,黄色意味着某些复制没有(或者还未)被分配。这个索引之所以这样,是 因为Elasticsearch默认为这个索引创建一份复制。由于现在我们只有一个节点在运行,那一份复制就分配不了了(为了高可用),直到当另外一个节 点加入到这个集群后,才能分配。一旦那份复制在第二个节点上被复制,这个节点的健康状态就会变成绿色。
现在让我们放一些东西到customer索引中。首先要知道的是,为了索引一个文档,我们必须告诉Elasticsearch这个文档要到这个索引的哪个类型(type)下。
让我们将一个简单的客户文档索引到customer索引、“external”类型中,这个文档的ID是1,操作如下:
把刚刚索引的文档取出来
localhost:9200/customer/external/1?pretty
除了一个叫做found的字段来指明我们找到了一个ID为1的文档,和另外一个字段——_source——返回我们前一步中索引的完整JSON文档之外,其它的都没有什么特别之处。
删除一个文档
localhost:9200/customer?pretty delete
这表明我们成功地删除了这个索引,现在我们回到了集群中空无所有的状态。
修改数据
localhost:9200/customer/external/1?pretty put
localhost:9200/customer/external/1?pretty put
以上的命令将ID为1的文档的name字段的值从“John Doe”改成了“Jane Doe”。如果我们使用一个不同的ID,一个新的文档将会被索引,当前已经在索引中的文档不会受到影响。
localhost:9200/customer/external/2?pretty
以上的命令,将会索引一个ID为2的新文档。
以下的例子展示了怎样在没有指定ID的情况下来索引一个文档(注意是post):
下面的例子展示了怎样将我们ID为1的文档的name字段改成“ysk000”:
下面的例子展示了怎样将我们ID为1的文档的name字段改成“Jane Doe”的同时,给它加上age字段:
更新也可以通过使用简单的脚本来进行。这个例子使用一个脚本将age加5:
在上面的例子中,ctx._source指向当前要被更新的文档。
注意,在写作本文时,更新操作只能一次应用在一个文档上。将来,Elasticsearch将提供同时更新符合指定查询条件的多个文档的功能(类似于SQL的UPDATE-WHERE语句)。
删除文档
我们也能够一次删除符合某个查询条件的多个文档。以下的例子展示了如何删除名字中包含“ysk”的所有的客户:
localhost:9200/customer/external/_query?pretty
注意,以上的URI变成了/_query,以此来表明这是一个“查询删除”API,其中删除查询标准放在请求体中,但是我们仍然使用DELETE。现在先不要担心查询语法,我们将会在本教程后面的部分中涉及。