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打印scrapy蜘蛛抓取树结构的方法
Apr 08 Python
python脚本设置超时机制系统时间的方法
Feb 21 Python
使用 Python 实现微信公众号粉丝迁移流程
Jan 03 Python
python Opencv将图片转为字符画
Feb 19 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
python导入模块交叉引用的方法
Jan 19 Python
python、Matlab求定积分的实现
Nov 20 Python
jupyter notebook实现显示行号
Apr 13 Python
Keras SGD 随机梯度下降优化器参数设置方式
Jun 19 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
Jul 14 Python
python中翻译功能translate模块实现方法
Dec 17 Python
如何用python清洗文件中的数据
Jun 18 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递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
PHP获取当前日期及本周一是几月几号的方法
2017/03/28 PHP
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
2013/12/16 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
bootstrapValidator 重新启用提交按钮的方法
2017/02/20 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
原生JS实现随机点名项目的实例代码
2019/04/30 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
vue中渲染对象中属性时显示未定义的解决
2020/07/31 Javascript
vue-router 按需加载 component: () => import() 报错的解决
2020/09/22 Javascript
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
快速查询Python文档方法分享
2017/12/27 Python
python调用webservice接口的实现
2019/07/12 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
Django视图扩展类知识点详解
2019/10/25 Python
Python笔记之代理模式
2019/11/20 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
Michael Kors美国官网:美式奢侈生活风格的代表
2016/11/25 全球购物
Old Navy加拿大官网:美式休闲服饰品牌
2017/09/26 全球购物
苹果音乐订阅:Apple Music
2018/08/02 全球购物
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
办公室主任个人对照检查材料思想汇报
2014/10/11 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
委托证明范本
2014/11/25 职场文书
党员民主生活会材料
2014/12/15 职场文书
嘉宾邀请函
2015/01/31 职场文书
关于召开会议的通知
2015/04/15 职场文书
导游词之包公祠
2019/11/25 职场文书
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js