ES(Elasticsearch)基于Lucene,可以理解为是一个全文搜索引擎。Elasticsearch是用Java开发的,Apache开放源码。ES的实时搜索,稳定,可靠,快速,扩展性很好等特性,使其能扩展到大量服务器以处理PB级别的数据。因此在全文搜索领域应用极广。ES主要功能:搜索引擎和数据分析引擎,全文检索和结构化检索,近乎实时的处理海量数据。本文是ES基础的介绍篇,熟悉和回顾ES的基本操作(ES大多情况下部署在linux上)。
以下操作建立在ES已在Windows上安装成功。主要熟悉操作,基本概念可查阅相关资料文档。
一、查看集群健康
GET /_cat/health?V
效果图:
二、获取节点列表
GET /_cat/nodes?v
效果图:
三、列出所有索引
GET _cat/indices?v
效果图:
四、创建索引
PUT /twitter?pretty
五、在索引中插入数据
PUT /twitter/tweet/1
{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "我是中国人,我爱中国!"
}
PUT /twitter/tweet/2
{
"user" : "darling",
"post_date" : "2011-11-15T14:12:12",
"message" : "盖茨是美国人,他很牛逼!"
}
PUT /twitter/tweet/3
{
"user" : "Warren Buffett",
"post_date" : "2013-11-15T14:12:12",
"message" : "巴菲特是美国人,他也很牛逼!"
}
PUT /twitter/tweet/4
{
"user" : "Bill Gates",
"post_date" : "2015-11-15T14:12:12",
"message" : "乔布斯是美国人,他同样很牛逼!"
}
PUT /twitter/tweet666/1
{
"user" : "java",
"post_date" : "2017-11-15T14:12:12",
"message" : "Hello World!"
}
六、检索索引下的数据
GET /twitter/_search?
效果图:
七、按类型检索
GET /twitter/tweet/_search?
GET /twitter/tweet/_search?
{
"query": { "match_all": {}}
}
GET /twitter/tweet/_search?type=tweet
{
"query": { "match_all": {}}
}
效果图:
八、按id检索
GET /twitter/tweet/2
效果图:
九、精确检索
GET /twitter/_search?
{
"query": {
"term": {
"user": "darling"
}
}
}
效果图:
十、模糊检索
GET /twitter/_search?
{
"query": {
"match": {
"message": "中国"
}
}
}
效果图:
十一、统计数据条数
GET /twitter/tweet/_search?pretty&type=count
{
"query":{
"match":{
"message":"中"
}
}
}
效果图:
十二、全局更新
PUT /twitter/tweet/1
{
"user" : "Andy Liu",
"post_date" : "2099-11-15T14:12:12",
"message" : "我是中国人,我爱我的祖国!YEAH!"
}
效果图:
十三、局部更新
POST /twitter/tweet/1/_update
{
"doc":{
"post_date":"2020-11-11T17:20:50",
"brief":"简介,这是新加的字段"
}
}
效果图:
十四、删除文档
PUT /twitter/tweet/6
{
"user" : "php",
"post_date" : "2017-11-15T14:12:12",
"message" : "Hello World!"
}
效果图:
GET /twitter/tweet/_search?
效果图:
DELETE /twitter/tweet/6
效果图:
至此,ES在Windows上的一些基本操作演示完毕。学习ES的过程中,大家还可以借助工具Kibana。后续与大家分享和交流其他ES技术的学习心得,也期待大家的反馈交流和及时指正。