Elasticsearch 索引操作和增删改查


Posted in Python onApril 19, 2022

接口幂等性

  • 0 接口幂等性:数学概念,多次请求,相当于一次请求
  • get,put,delete都是幂等性的接口
  • post 存在幂等性的问题
  • 前端速度很快,点了两次,会生成两个订单
  • 用户在访问新增页面时(提交订单)---》接口返回一个唯一id,提交订单,携带唯一id过来,后端判断这个唯一id是否被用过---》没用过,创建订单
  • 你在项目中碰到的问题和如何解决(项目收获)下订单,经常重复订单,点得快,幂等性问题,如何解决的

倒排索引

1.es介绍10个点

2.安装

-jdk :java开发环境

  • 官网下载es相应的版本,解压,到bin目录下启动elasticsearch.bat
  • 两个客户端(kibana:官方,发送请求,数据统计,展示,elasticsearch-head:第三方用node写的)
  • kibana跟es版本对应,bin路径下,直接启动
  • elasticsearch-head需要安装node环境,npm install ---》npm run start
  • kibana配置文件配置(copy一下,kibana监听的地址端口,随便名一个名,连接es的地址)
  • 修改es配置:允许跨域(浏览器的同源策略),cors:跨域资源共享,实现跨域
  • es的倒排索引(扩展阅读.md)
  • 把文章进行分词,对每个词建立索引

3 索引操作

# 索引操作---》数据库操作---》新增,删除,修改,查询
# 1 新增索引:
PUT lqz2     # lqz2就是索引名字
{
  "settings": {
    "index":{
      "number_of_shards":5,
      "number_of_replicas":1
    }
  }
}
# 2 查询索引
GET lqz2/_settings
返回结果
{
  "lqz2" : {
    "settings" : {
      "index" : {
        "creation_date" : "1588822389842",
        "number_of_shards" : "1",
        "number_of_replicas" : "1",
        "uuid" : "NBXIeVdHQ26vCuPn8_6uew",
        "version" : {
          "created" : "7050099"
        },
        "provided_name" : "lqz2"
      }
    }
  }
}
# 3 更新索引
PUT lqz2/_settings
{
  "number_of_replicas": 2
}
#4 删除lqz2索引
DELETE lqz2

4 文档基本增删查改

#1  新增文档
POST lqz2/_doc/1
{
  "title":"红楼梦",
  "price":12,
  "publish_addr":{
    "province":"黑龙江",
    "city":"鹤岗"
  },
  "publish_date":"2013-11-11",
  "read_num":199,
  "tag":["古典","名著"]
}
POST lqz2/_doc/2
{
  "title":"西游记",
  "price":22,
  "publish_addr":{
    "province":"上海",
    "city":"上海"
  },
  "publish_date":"2013-11-11",
  "read_num":66,
  "tag":["古典","小说"]
}
# 2 查询文档(更详细的查找,后面讲)
GET lqz2/_doc/2
# 3 修改文档
-覆盖式(原来的字段就没有了)
PUT lqz/_doc/1
{
  "title":"xxxx",
  "price":333,
  "publish_addr":{
    "province":"黑龙江",
    "city":"福州"
  }
}
-增量式(只修改某个字段)一定要注意包在doc中
POST lqz2/_doc/1/_update
{
  "doc":{
    "title":"xx"
  }
}
# 4 删除文档
DELETE lqz/_doc/1
# 5 批量获取
GET _mget
{
  "docs":[
    {
      "_index":"lqz2",
      "_type":"_doc",
      "_id":2
    },
    {
      "_index":"lqz2",
      "_type":"_doc",
      "_id":1
    }
    ]
}
# 6 批量插入
PUT test/_doc/2/_create
{
  "field1" : "value22"
}
POST _bulk
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_id" : "2" } }
{ "create" : { "_index" : "test", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_index" : "test"} }
{ "doc" : {"field2" : "value2"} }

5 文档查询

# 测试数据
PUT lqz/doc/1
{
  "name":"顾老二",
  "age":30,
  "from": "gu",
  "desc": "皮肤黑、武器长、性格直",
  "tags": ["黑", "长", "直"]
}
PUT lqz/doc/2
{
  "name":"大娘子",
  "age":18,
  "from":"sheng",
  "desc":"肤白貌美,娇憨可爱",
  "tags":["白", "富","美"]
}
PUT lqz/doc/3
{
  "name":"龙套偏房",
  "age":22,
  "from":"gu",
  "desc":"mmp,没怎么看,不知道怎么形容",
  "tags":["造数据", "真","难"]
}
# 两种方式
	-第一种(字符串查询)
  	GET lqz/doc/_search?q=from:gu
    GET lqz/doc/_search?q=age:22
  -查询的第二种方式(结构化)
  	GET lqz/doc/_search
    {
      "query": {
        "match": {
          "from": "gu"
        }
      }
    }
    GET lqz/doc/_search
    {
      "query": {
        "match": {
          "age": 22
        }
      }
    }
   GET lqz/doc/_search
    {
      "query": {
        "match": {
          "desc": "形容"
        }
      }
    }
GET lqz/doc/_search
{
  "query": {
    "match": {
      "tags": "造数据"
    }
  }
}

以上就是Elasticsearch文档索引基本操作增删改查示例的详细内容!

Python 相关文章推荐
Python对象转JSON字符串的方法
Apr 27 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
Jul 02 Python
python实现应用程序在右键菜单中添加打开方式功能
Jan 09 Python
python版微信跳一跳游戏辅助
Jan 11 Python
Python迭代器与生成器基本用法分析
Jul 26 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 Python
python创建学生管理系统
Nov 22 Python
Python中six模块基础用法
Dec 08 Python
python与pycharm有何区别
Jul 01 Python
python 用Matplotlib作图中有多个Y轴
Nov 28 Python
python中print格式化输出的问题
Apr 16 Python
python执行js代码的方法
May 13 Python
python中redis包操作数据库的教程
Apr 19 #Python
python中pymysql包操作数据库方法
Apr 19 #Python
Python中Schedule模块使用详解 周期任务神器
Apr 19 #Python
python中urllib包的网络请求教程
Apr 19 #Python
python APScheduler执行定时任务介绍
Apr 19 #Python
Python数据可视化之Seaborn的安装及使用
python 闭包函数详细介绍
Apr 19 #Python
You might like
php获取bing每日壁纸示例分享
2014/02/25 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
简单实现PHP留言板功能
2016/12/21 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
javascript 节点遍历函数
2010/03/28 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
node.js中的fs.closeSync方法使用说明
2014/12/17 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
vue + element-ui的分页问题实现
2018/12/17 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
九步学会Python装饰器
2015/05/09 Python
python实现RSA加密(解密)算法
2016/02/17 Python
用python与文件进行交互的方法
2018/03/01 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
对django 模型 unique together的示例讲解
2019/08/06 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
pycharm 的Structure界面设置操作
2021/02/05 Python
处理textarea中的换行和空格
2019/12/12 HTML / CSS
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
最新结婚典礼主持词
2014/03/14 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
小学感恩主题班会
2015/08/12 职场文书
Python作用域和名称空间的详细介绍
2022/04/13 Python