1. 概述

之前聊了一下 Elasticsearch 的安装,今天我们来说说 Elasticsearch 的基本使用。

2. Elasticsearch索引的使用

索引(index)相当于是mysql中的表。

2.1 创建索引

1)Head插件方式

选择 索引 页签,点击【新建索引】按钮,输入索引名称、分片数、副本数,点击【OK】

之所以集群健康值呈现黄色,是因为目前是用单服务器跑的Elasticsearch,而副本是要存储在不同的服务器上的,之后会聊一下 Elasticsearch 集群的搭建。

2)RESTFUL接口方式

PUT  http://192.168.1.11:9200/index_user

参数:

{
"settings":{
"index":{
"number_of_shards":5, // 分片数
"number_of_replicas":0 // 副本数
}
}
}

 2.2 查看集群健康状况

RESTFUL接口方式

GET  http://192.168.1.11:9200/_cluster/health

响应:

{
"cluster_name": "zhuifengren-es",
"status": "yellow",
"timed_out": false,
"number_of_nodes": 1,
"number_of_data_nodes": 1,
"active_primary_shards": 6,
"active_shards": 6,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 5,
"delayed_unassigned_shards": 0,
"number_of_pending_tasks": 0,
"number_of_in_flight_fetch": 0,
"task_max_waiting_in_queue_millis": 0,
"active_shards_percent_as_number": 54.54545454545454
}

2.3 删除索引

1)Head插件方式

在 概览 页签,找到需要删除的索引,选择 动作 —> 删除...

2)RESTFUL接口方式

DELETE  http://192.168.1.11:9200/index_user

2.4 查看集群整体信息

RESTFUL接口方式

GET  http://192.168.1.11:9200/_cat/indices?v

响应:

health status index            uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green open .geoip_databases pE4IpIAeSA2AiJzdDdviYA 1 0 42 64 65.1mb 65.1mb
green open index_user 2z4cELBeQeijTagp86ShbQ 5 0 0 0 1kb 1kb

3. Elasticsearch映射的使用

映射(mapping)相当于是mysql中的表结构定义。

3.1 Elasticsearch中的主要数据类型

文本类型:text,keyword

整型:long,integer,short,byte

浮点型:double,float

布尔型:boolean

日期型:date

对象型:object

3.2 创建索引并创建映射

RESTFUL接口方式

PUT  http://192.168.1.11:9200/index_user

参数:

{
"settings":{
"index":{
"number_of_shards":5,
"number_of_replicas":0
}
},
"mappings" : {
"properties":{
"name":{
"type":"text", // 数据类型
"index":true // 是否索引
},
"loginName":{
"type":"keyword",
"index":false
},
"age":{
"type":"integer",
"index":false
}
}
}
}

3.3 在已有的索引上维护mapping

RESTFUL接口方式

POST  http://192.168.1.11:9200/index_user/_mapping

参数:

{
"properties":{
"nickname":{
"type":"keyword",
"index":false
}
}
}

 注意:mapping中的属性,只能添加,不能修改。如果属性设置需要变更,需要删除索引重建。

3.4 查看索引的分词效果 

RESTFUL接口方式

GET  http://192.168.1.11:9200/index_user/_analyze

参数:

{
"field": "name",
"text": "lisa brown"
}

4. Elasticsearch文档的使用

文档(document)相当于是mysql中的数据行。

 4.1 新增文档

RESTFUL接口方式

POST  http://192.168.1.11:9200/index_user/_doc/1

注:url中最后的1是文档在Elasticsearch中的ID,与业务ID无关,如果不写,则会自动生成一个随机字符串作为文档的ID

参数:

{
"name":"zhang san",
"loginName":"zs",
"age":30
}

如果没有手动创建 映射(mapping),则新增文档后,Elasticsearch会根据文档的字段类型自动创建 映射(mapping)。

4.2 删除文档

RESTFUL接口方式

DELETE  http://192.168.1.11:9200/index_user/_doc/1

4.3 修改文档

RESTFUL接口方式

1)只修改部分字段

POST  http://192.168.1.11:9200/index_user/_doc/1/_update

参数:

{
"doc":{
"name":"zhangsan2",
"age":33
}
}

2)全部替换

PUT  http://192.168.1.11:9200/index_user/_doc/1

参数:

{
"name":"zhangsan",
"loginName":"zs",
"age":31
}

4.4 查询文档

RESTFUL接口方式

1)依据文档ID查询

GET  http://192.168.1.11:9200/index_user/_doc/1

响应数据:

{
"_index": "index_user",
"_type": "_doc",
"_id": "1",
"_version": 5,
"_seq_no": 7,
"_primary_term": 1,
"found": true,
"_source": {
"name": "zhangsan",
"loginName": "zs",
"age": 31
}
}

2)查询所有

GET  http://192.168.1.11:9200/index_user/_doc/_search

响应数据:

{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 2,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": "index_user",
"_type": "_doc",
"_id": "_TVW-XsBNDgg-BBCeUvY",
"_score": 1.0,
"_source": {
"name": "lisi",
"loginName": "ls",
"age": 31
}
},
{
"_index": "index_user",
"_type": "_doc",
"_id": "1",
"_score": 1.0,
"_source": {
"name": "zhangsan",
"loginName": "zs",
"age": 31
}
}
]
}
}

3)查询时自定义结果集

GET  http://192.168.1.11:9200/index_user/_doc/1?_source=name,age

GET  http://192.168.1.11:9200/index_user/_doc/_search?_source=name,age

5. 综述

今天简单聊了一下 Elasticsearch 的基本使用,希望能对大家的工作有所帮助。

欢迎大家帮忙点赞、评论、加关注 :)

关注追风人聊Java,每天更新Java干货。

Elasticsearch的基本使用的更多相关文章

  1. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  2. Elasticsearch 5.0 中term 查询和match 查询的认识

    Elasticsearch 5.0 关于term query和match query的认识 一.基本情况 前言:term query和match query牵扯的东西比较多,例如分词器.mapping ...

  3. 以bank account 数据为例,认识elasticsearch query 和 filter

    Elasticsearch 查询语言(Query DSL)认识(一) 一.基本认识 查询子句的行为取决于 query context filter context 也就是执行的是查询(query)还是 ...

  4. Ubuntu 14.04中Elasticsearch集群配置

    Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...

  5. ElasticSearch 5学习(10)——结构化查询(包括新特性)

    之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...

  6. ElasticSearch 5学习(9)——映射和分析(string类型废弃)

    在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...

  7. .net Elasticsearch 学习入门笔记

    一. es安装相关1.elasticsearch安装  运行http://localhost:9200/2.head插件3.bigdesk插件安装(安装细节百度:windows elasticsear ...

  8. 自己写的数据交换工具——从Oracle到Elasticsearch

    先说说需求的背景,由于业务数据都在Oracle数据库中,想要对它进行数据的分析会非常非常慢,用传统的数据仓库-->数据集市这种方式,集市层表会非常大,查询的时候如果再做一些group的操作,一个 ...

  9. 如何在Elasticsearch中安装中文分词器(IK+pinyin)

    如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当用Kibana作图的时候,按照term来分组,结果一个汉字被分成了一组. ...

  10. jar hell & elasticsearch ik 版本问题

    想给es 安装一个ik 的插件, 我的es 是 2.4.0, 下载了一个版本是 1.9.5, [2016-10-09 16:56:26,248][INFO ][node ] [node-2] init ...

随机推荐

  1. 编程熊讲解LeetCode算法《二叉树》

    大家好,我是编程熊. 往期我们一起学习了<线性表>相关知识. 本期我们一起学习二叉树,二叉树的问题,大多以递归为基础,根据题目的要求,在递归过程中记录关键信息,进而解决问题. 如果还未学习 ...

  2. JSON.stringify()的用法

    **JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串,而我们一般只是用了第一个参数,没有在意过第二个以及第三个参数的妙用** **1.最常用的方式:** ...

  3. AQS源码分析看这一篇就够了

      好了,我们来开始今天的内容,首先我们来看下AQS是什么,全称是 AbstractQueuedSynchronizer 翻译过来就是[抽象队列同步]对吧.通过名字我们也能看出这是个抽象类 而且里面定 ...

  4. Kafka丢数据、重复消费、顺序消费的问题

    面试官:今天我想问下,你觉得Kafka会丢数据吗? 候选者:嗯,使用Kafka时,有可能会有以下场景会丢消息 候选者:比如说,我们用Producer发消息至Broker的时候,就有可能会丢消息 候选者 ...

  5. LNMP 方式部署 zabbix 5.0

    文章链接 Zabbix 5.0 LTS新增功能 新版本附带了可用性,安全性和完整性方面的重大改进列表.Zabbix团队遵循的主要策略是使Zabbix尽可能可用.Zabbix是一种开源,免费的监视解决方 ...

  6. Windows安装Svn客户端

    一.下载程序 官网地址,选择最新64位下载. 下载完成 二.安装过程 点击下一步 点击下一步 选择安装目录 点击安装 安装完成 三.修改中文 下载中文包 下载完成 点击下一步 安装完成 点击设置 选择 ...

  7. reduce使用技巧

    一.使用reduce同时执行map(循环)和filter(过滤) 例如,将数组中的项的值加倍,然后只选择那些大于50的项 const numbers = [10, 20, 30, 40]; const ...

  8. 如何选择Spring cloud和 Spring Boot对应的版本

    如何选择Spring cloud和 Spring Boot对应的版本 首先,我们进入Spring Cloud官网,查询Spring cloud的版本和对应的Spring Boot版本 打开Spring ...

  9. 关于Java for循环的注意点

    1 import java.util.ArrayList; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 ...

  10. Session原理、生命周期及购物车功能的实现

    在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据(保存该浏览器(会话)的相关信息)时 ...