Elasticsearch的基本使用
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的基本使用的更多相关文章
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- Elasticsearch 5.0 中term 查询和match 查询的认识
Elasticsearch 5.0 关于term query和match query的认识 一.基本情况 前言:term query和match query牵扯的东西比较多,例如分词器.mapping ...
- 以bank account 数据为例,认识elasticsearch query 和 filter
Elasticsearch 查询语言(Query DSL)认识(一) 一.基本认识 查询子句的行为取决于 query context filter context 也就是执行的是查询(query)还是 ...
- Ubuntu 14.04中Elasticsearch集群配置
Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...
- ElasticSearch 5学习(10)——结构化查询(包括新特性)
之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...
- ElasticSearch 5学习(9)——映射和分析(string类型废弃)
在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...
- .net Elasticsearch 学习入门笔记
一. es安装相关1.elasticsearch安装 运行http://localhost:9200/2.head插件3.bigdesk插件安装(安装细节百度:windows elasticsear ...
- 自己写的数据交换工具——从Oracle到Elasticsearch
先说说需求的背景,由于业务数据都在Oracle数据库中,想要对它进行数据的分析会非常非常慢,用传统的数据仓库-->数据集市这种方式,集市层表会非常大,查询的时候如果再做一些group的操作,一个 ...
- 如何在Elasticsearch中安装中文分词器(IK+pinyin)
如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当用Kibana作图的时候,按照term来分组,结果一个汉字被分成了一组. ...
- 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 ...
随机推荐
- MeteoInfo-Java解析与绘图教程(一)
MeteoInfo-Java解析与绘图教程(一) 已经进入开发行业很多年了,这两年一直从事气象开发行业,为此对气象绘图有了新的见解 像色斑图与卫星图一直都有python去绘制,在偶然的情况下,我接触到 ...
- iOS开发之蜂窝布局—Swift
前言 最近项目中用到了类似蜂窝的六边形布局,在这里分享出来抛砖引玉,供大家参考学习.本文提供了2种思路实现效果,第一种方式使用UICollectionView实现,第二种方式使用UIScrollVie ...
- 零基础学Java之Java学习笔记(三):变量和数据类型
为什么需要变量? 变量是一个程序的基本组成单位. 变量的概念: 变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房 间,而通过变量名可以访问到变量(值 ...
- 【LeetCode】26. 删除有序数组中的重复项
26. 删除有序数组中的重复项 知识点:数组:排序:双指针: 题目描述 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的 ...
- SpringDataJpa使用原生sql(EntityManager)动态拼接,分页查询
SpringDataJpa Spring Data JPA是较大的Spring Data系列的一部分,可轻松实现基于JPA的存储库.该模块处理对基于JPA的数据访问层的增强支持.它使构建使用数据访问技 ...
- Python3 * 和 ** 运算符
1.算数运算 * 代表乘法 ** 代表乘方 1>>> 2 * 52103>>> 2 ** 5432 2.函数形参 *args 和 **kwargs 主要用于函数定 ...
- springboot中@Mapper和@Repository的区别
@Mapper和@Repository是常用的两个注解,两者都是用在dao上,两者功能差不多,容易混淆,有必要清楚其细微区别: 区别: @Repository需要在Spring中配置扫描地址,然后生成 ...
- C#的生产者和消费者 实例
class Program { //写线程将数据写入myData static int myData = 100; //读写次数 const int readWriteCount = 20; //fa ...
- Java 方法使用
那么什么是方法呢? Java方法是语句的集合,它们在一起执行一个功能. 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 方法的优点 1. 使程序变得更简 ...
- mzy,struts学习(一)
大家都在讲struts已经过时了,现在都是前后台分离,没有必要去学一个淘汰的框架,但是怎么讲呢?我觉得,struts能够流行那么多年,肯定有它的原因,肯定有很多优秀和好的地方,有一个指导过我的人给我讲 ...