ElasticSearch的客户端操作
Posted mayuan01
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch的客户端操作相关的知识,希望对你有一定的参考价值。
实际开发中,主要由三种方式可以作为elasticsearch服务的客户端:
1.elasticsearch-head插件;
2.使用elasticsearch提供的Restful接口直接访问;
3.使用elasticsearch提供的API进行访问;
使用Postman工具进行Restful接口访问(下载地址:https://www.postman.com/)
1.elasticsearch的接口语法
curl ‐X<VERB> ‘<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>‘ ‐d ‘<BODY>‘
解释:
VERB:适当的HTTP方法或谓词,(GET,POST,PUT,DELETE);
PROTOCOL:HTTP或者HTTPS(如果你在elasticsearch前面有一个HTTPS代理);
HOST:elasticsearch集群中任意节点的主机名,或者用localhost代表本机机器上的节点;
PORT:运行elasticsearch http服务的端口号,默认为9200;
PATH:API的终端路径;
QUERY_STRING:任意可选的查询字符串参数;
BODY:一个JSON格式的请求体;
2.创建索引index和映射mapping(添加)
2.1 在postman地址栏中输入如下地址:(添加的HTTP方法是PUT)
http://localhost:9200/wn_2
2.2 请求体
{ "mappings":{ "type_table1":{ "properties": { "id":{ "type":"long", "store":true, "index":"not_analyzed" }, "title":{ "type":"text", "store":true, "index":"analyzed", "analyzer":"standard" }, "content":{ "type":"text", "store":true, "index":"analyzed", "analyzer":"standard" } } } } }
2.3 点击Send按钮,查看页面执行结果
点击【信息】下的【索引信息】,查看elasticsearch-head:
3.创建索引后设置mapping(修改)
3.1 先创建一个索引,不指定mapping信息
3.2 请求的url(修改请求的方式是POST)
http://localhost:9200/wn_1/type_table2/_mapping
3.3 请求体
{ "type_table2": { "properties": { "id":{ "type":"long", "store":true, "index":"not_analyzed" }, "title":{ "type":"text", "store":true, "index":"analyzed", "analyzer":"standard" }, "content":{ "type":"text", "store":true, "index":"analyzed", "analyzer":"standard" } } } }
3.4 点击Send后执行的结果
4.删除索引index
4.1 请求的url (删除的请求方式是delete)
http://localhost:9200/wn_2
4.2 实现效果
5.创建文档document
5.1 请求的url (请求方式post)
http://localhost:9200/wn_1/type_table2/1
5.2 请求体
{ "id":1, "title":"ElasticSearch是一个基于Lucene的搜索服务器", "content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java 开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时 搜索,稳定,可靠,快速,安装使用方便。" }
5.3 点击Send后,查看实现效果
6.修改文档document
6.1 请求的url·(请求的方式是POST)
http://localhost:9200/wn_1/type_table2/1
6.2 请求体
{ "id":1, "title":"【修改】ElasticSearch是一个基于Lucene的搜索服务器", "content":"【修改】它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch 是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够 达到实时搜索,稳定,可靠,快速,安装使用方便。" }
6.3 点击Send后,实现效果
7.删除文档document
7.1 请求的url (请求的方式是delete)
http://localhost:9200/wn_1/type_table2/1
7.2 点击Send后,实现效果
8.查询文档-根据id查询
8.1 创建文档(两条数据)
8.2 请求的url (请求方式是GET)
http://localhost:9200/wn_1/type_table2/1
8.3 点击Send后,查询出的结果
9.查询文档-querystring查询
9.1 请求的url (请求的方式为POST)
http://localhost:9200/wn_1/type_table2/_search
9.2 请求体
{ "query": { "query_string": { "default_field": "title", "query": "搜索服务器" } } }
9.3 点击Send后,效果实现
9.4 注意:将搜索内容"搜索服务器"修改为"修改",同样也能搜索到文档
10.查询文档-term查询
10.1 请求的url (请求的方式为POST)
http://localhost:9200/wn_1/type_table2/_search
10.2 请求体
{ "query": { "term": { "title": "搜索" } } }
10.3 点击Send,效果实现
因为这里使用的是标椎分词器,所以查出的数据是空的,下面我可以测试一下标椎分词器的效果:(GET请求方式)
http://localhost:9200/_analyze?analyzer=standard&pretty=true&text=我是程序员
效果实现:
以上是关于ElasticSearch的客户端操作的主要内容,如果未能解决你的问题,请参考以下文章
ElasticSearch学习问题记录——Invalid shift value in prefixCoded bytes (is encoded value really an INT?)(代码片段
ElasticSearch-学习笔记04Java客户端操作索引库