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用字典统计单词或汉字词个数示例
Apr 22 Python
python使用socket远程连接错误处理方法
Apr 29 Python
python编程使用selenium模拟登陆淘宝实例代码
Jan 25 Python
解决pycharm remote deployment 配置的问题
Jun 27 Python
PyCharm取消波浪线、下划线和中划线的实现
Mar 03 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
Mar 30 Python
python使用pymongo与MongoDB基本交互操作示例
Apr 09 Python
Windows下Anaconda和PyCharm的安装与使用详解
Apr 23 Python
提取视频中的音频 Python只需要三行代码!
May 10 Python
如何将numpy二维数组中的np.nan值替换为指定的值
May 14 Python
python中tkinter复选框使用操作
Nov 11 Python
python绘制简单直方图(质量分布图)的方法
Apr 21 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
dedecms集成财付通支付接口
2014/12/28 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
Yii实现简单分页的方法
2016/04/29 PHP
php常用的工具开发整理
2019/09/26 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
JQuery 1.4 中的Ajax问题
2010/01/23 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
2016/03/11 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
Python 中开发pattern的string模板(template) 实例详解
2017/04/01 Python
在python3中实现更新界面
2020/02/21 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
中学生家长评语大全
2014/04/16 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
四风查摆问题自查报告
2014/10/10 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
部队2015年终工作总结
2015/04/02 职场文书
2019通用版新员工入职培训方案!
2019/07/11 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
《最终幻想14》6.01版本4月5日推出 追加新任务新道具
2022/04/03 其他游戏