CentOS 6.4下Elasticsearch 的安装和基本使用(2)

2、与 Elasticsearch 通信
Elasticsearch 支持 RESTful API的访问方式,这里我们使用 curl 访问和操作Elasticsearch
官方也有很多对应语言的 API 供大家选择
PHP-API
JAVA-API
Python-API

初探:查看 Elasticsearch 的基本信息

#pretty 参数使返回的结果格式化更易读 curl 'http://localhost:9200/?pretty' #返回 { "name" : "node-136", "cluster_name" : "cluster-test", "version" : { "number" : "2.2.0", "build_hash" : "8ff36d139e16f8720f2947ef62c8167a888992fe", "build_timestamp" : "2016-01-27T13:32:39Z", "build_snapshot" : false, "lucene_version" : "5.4.1" }, "tagline" : "You Know, for Search" }

简单介绍一下 curl 命令

curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>' VERB HTTP方法:GET, POST, PUT, HEAD, DELETE PROTOCOL http或者https协议(只有在Elasticsearch前面有https代理的时候可用) HOST Elasticsearch集群中的任何一个节点的主机名 PORT Elasticsearch HTTP服务所在的端口,默认为9200 PATH API路径,资源路径(例如_count将返回集群中文档的数量) QUERY_STRING 一些可选的查询请求参数,例如?pretty参数将返回易读的JSON数据 BODY 一个JSON格式的请求主体(如果请求需要的话)

3、elasticsearch-head 插件
这里介绍一个 Elasticsearch 可视化的管理插件 elasticsearch-head,可方便的查看,删除,管理数据(生产环境不推荐安装)
root 安装

cd /usr/local/elasticsearch-2.2.0/bin/ ./plugin install mobz/elasticsearch-head

访问(linux 有桌面系统带浏览器的可直接��问)::9200/_plugin/head/
那外网如何访问呢,使用 Nginx 代理,修改Nginx 配置文件加入

server { listen 8080; #192.168.1.136 是我虚拟机的 ip 地址 server_name 192.168.1.136; location / { #http://127.0.0.1:9200/ 是后端代理的地址 proxy_pass http://127.0.0.1:9200/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

重启nginx,在windows下访问 :8080/_plugin/head/,界面如下

还未创建索引的情况


可以查看集群信息,节点信息,索引信息…都是以json 形式显示这些信息

4、创建、查看索引
现在我们来添加一个名叫 test 的索引(可理解为数据库)

curl -XPUT 'http://localhost:9200/test?pretty' #返回 { "acknowledged" : true }

创建成功后,默认会分配五个主分片(创建后不可更改,通过算法将数据存放在这五个分片中的一个,增删改都是针对主分片的)和一个复制分片(可修改,每个主分片都对应一个复制分片),这两个默认值都可以在配置文件中修改,也可以在创建的时候指定,如

curl -XPUT 'http://localhost:9200/test?pretty' -d '{ "settings": { "number_of_shards" : 2, #2个主分片 "number_of_replicas" : 0 #0个复制分片 } }'

查看索引

curl -XGET 'http://localhost:9200/test?pretty'

5、创建、查看 类型
创建一个名叫 article 的类型(即表名),有这几个字段,id、subject、content、author

curl -XPUT 'http://localhost:9200/test/_mapping/article?pretty' -d '{ "properties": { "id": { "type": "integer", "index": "not_analyzed" }, "subject": { "type": "string", "analyzer": "standard" }, "content": { "type": "string", "analyzer": "standard" }, "author": { "type": "string", "index": "not_analyzed" } } }'

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a838567fb1c3487d0fb9125155debba5.html