ElasticSearch 基础入门 and 操作索引 and 操作文档
基本概念
索引:
类似于MySQL的表。索引的结构为全文搜索作准备,不存储原始的数据。
索引可以做分布式。每一个索引有一个或者多个分片 shard。每一个分片可以有多个副本 replica。
文档:
类似与MySQL的一行记录。
映射:
所有文档写入索引之前,会进行分析, 分析将输入的文本进行分割为词条,分析哪些词条会被过滤。
文档类型:
每个文档都可以有不同的结构。
不同的文档类不能为相同的属性设置不同的类型。
【同一索引中所有文档类型中,一个title字段必须是相同的类型】
RestFul API 操作索引
1 创建索引
PUT:127.0.0.1:9200/test
{
"settings": {
"index": {
"number_of_shards": "2",
"number_of_replicas": "0"
}
}
}
2 删除索引
DELETE:127.0.0.1:9200/test
RestFul API 操作文档
1、添加数据
POST:/{索引}/{类型}/{id 非必需}
# 指定数据的唯一标示符
POST:127.0.0.1:9200/test/user/1001
{
"id": 1010,
"name": "张三",
"age": 10,
"sex": "男"
}
# 不指定数据的唯一标示符
POST:127.0.0.1:9200/test/user
{
"id": 1011,
"name": "张三",
"age": 11,
"sex": "男"
}
2、删除数据
DELETE:127.0.0.1:9200/test/user/1001
说明:
删除一个文档的时候不会立即从磁盘上移除,它只是被标记为已删除。
Elasticsearch 将会在以后添加更多索引的时候才会在后台进行删除内容的清理。
3、更新数据
在 Elasticsearch中,文档数据是不能被修改的,但是可以通过指定唯一标示符的方式进行覆盖更新【全量覆盖】
PUT:127.0.0.1:9200/test/user/1001
{
"id": 1010,
"name": "张三",
"age": 11,
"sex": "男"
}
【局部更新】
1、从旧文档中检索到JSON
2、修改
3、删除旧文档
4、索引新文档
POST:127.0.0.1:9200/test/user/1001/_update
{
"doc":{
"age": 100
}
}
4、查询数据
根据ID搜索数据【GET】127.0.0.1:9200/test/user/1001
获取所有数据默认10条【GET】127.0.0.1:9200/test/user/_search
根据关键词搜索数据【GET】127.0.0.1:9200/test/user/_search?q=age:100
5、DSL搜索
Elasticsearch提供的丰富的灵活的查询语言叫做DSL查询【Query DSL】
POST:127.0.0.1:9200/test/user/_search
{
"query": {
"match": {
"age": 20
}
}
}
filter 过滤
must 匹配
6、全文检索
POST:127.0.0.1:9200/test/user/_search
{
"query": {
"match": {
"name": "三 五"
}
}
}
7、高亮显示
POST:127.0.0.1:9200/test/user/_search
{
"query": {
"match": {
"name": "三 五"
}
},
"highlight": {
"fields": {
"name": {}
}
}
}
8、聚合操作,类似SQL中的 group by 操作
POST:127.0.0.1:9200/test/user/_search
{
"aggs": {
"all_interests": {
"terms": {
"field": "age"
}
}
}
}
ElasticSearch 基础入门 and 操作索引 and 操作文档的更多相关文章
- Elasticsearch 基础入门
原文地址:Elasticsearch 基础入门 博客地址:http://www.extlight.com 一.什么是 ElasticSearch ElasticSearch是一个基于 Lucene 的 ...
- 【Lucene3.6.2入门系列】第14节_SolrJ操作索引和搜索文档以及整合中文分词
package com.jadyer.solrj; import java.util.ArrayList; import java.util.List; import org.apache.solr. ...
- MongoDB(五):MongoDB操作文档
本篇文章中将讲解如何使用MongoDB操作文档. 文档的数据结构和JSON基本一致,所有存储在集合中的数据都是BSON格式.BSON是一种类似json格式的一种二进制形式的存储格式,简称Binary ...
- ElasticSearch基础入门学习笔记
前言 本笔记的内容主要是在从0开始学习ElasticSearch中,按照官方文档以及自己的一些测试的过程. 安装 由于是初学者,按照官方文档安装即可.前面ELK入门使用主要就是讲述了安装过程,这里不再 ...
- ElasticSearch使用C#操作文档
一.ElasticSearch的.net客户端驱动程序 ElasticSearch官方网站提供了两个.net客户端驱动程序,其中Elasticsearch.Net是一个非常底层且灵活的客户端驱动程序, ...
- (大数据工程师学习路径)第一步 Linux 基础入门----文件系统操作与磁盘管理
介绍 本节的文件系统操作的内容十分简单,只会包含几个命令的几个参数的讲解,但掌握这些也将对你在学习后续其他内容的过程中有极大帮助. 因为本课程的定位为入门基础,尽快上手,故没有打算涉及太多理论内容,前 ...
- ElasticSearch基础入门
1.query查询表达式 Elasticsearch 提供一个丰富灵活的查询语言叫做 查询表达式 , 查询表达式(Query DSL)是一种非常灵活又富有表现力的 查询语言,它支持构建更加复杂和健壮的 ...
- Elasticsearch基础入门,详情可见官方文档
索引文档: 对于员工目录,我们将做如下操作: 每个员工索引一个文档,文档包含该员工的所有信息. 每个文档都将是 employee 类型 . 该类型位于 索引 megacorp 内. 该索引保存在我们的 ...
- Linux基础入门-文件系统操作与磁盘管理
一.简单文件系统操作: df (-h) 查看磁盘容量: rootfs作为系统启动时内核载入内存之后,在挂载真正的磁盘之前的一个临时文件系统: /dev/sda2 对应主机硬盘的分区,后面的a表示第几块 ...
随机推荐
- 【一】美化Linux终端之oh-my-zsh开源项目
目录 1.查看系统是否装了zsh 2.安装zsh(系统没有查到zsh,则安装) 3.切换shell为zsh 4.重启Linux 5.安装oh my zsh 6.到此就安装完成 7.更换主题 8.生效主 ...
- Numerical Sequence(hard version),两次二分
题目: 题意: 已知一个序列: 112123123412345123456123456712345678123456789123456789101234567891011... 求这个序列第k个数是多 ...
- JQ滚动加载
$(window).scroll(function () { if ($(document).scrollTop() + $(window).height() >= $(document).he ...
- JVM 学习笔记(四)
回顾: 在之前的文章中,我们主要体现了当堆内存设置的比较小的情况下,比如:-Xmx20M -Xms20M,在项目运行的过程中,不断往内存中去添加对象, 这时候就会出现OOM,也就是内存溢出,本文章将展 ...
- Hadoop基础(二):从Hadoop框架讨论大数据生态
1 Hadoop是什么 2 Hadoop三大发行版本 Hadoop三大发行版本:Apache.Cloudera.Hortonworks. Apache版本最原始(最基础)的版本,对于入门学习最好. C ...
- python 并发专题(十四):asyncio (三)实战
https://www.cnblogs.com/wongbingming/p/9124142.html 在实战中,将会用到以下知识点: 多线程的基本使用 Queue消息队列的使用 Redis的基本使用 ...
- MapReduce的运行流程概述
MapReduce处理数据的大致流程 ①InputFormat调用RecordReader,从输入目录的文件中,读取一组数据,封装为keyin-valuein对象 ②将封装好的key-value,交给 ...
- Dynamics CRM Audit Performance Troubleshooting
记一次Dynamics CRM Audit 查询失败的问题. 客户环境现象:由于业务逻辑需要使用RetrieveAuditDetailRequest API查询相关Record的详细更改信息.但查询过 ...
- TortoiseGit 解决冲突的两种方法
一.冲突发生原因: 用户A 有新提交 用户B 没有pull, 写新代码 ,pull , 提示有冲突 Solution: 1: stash save(把自己的代码隐藏存起来) -> 重新pul ...
- 2020软件测试自学全套教程-基于python自动化软件测试-2020新版软件测试中级程序员学习路线
不知不觉间,在软件测试行业野蛮的折腾了七年之久.七年之痒也即将过去,但我还是热爱着软件测试这一份工作,一路坚持,走到现在.经历过各种难题,有过迷茫,有过焦虑失眠.也踩过无数的坑,深知行业的不易.自从9 ...