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的词法分析与语法分析
May 18 Python
python基础入门学习笔记(Python环境搭建)
Jan 13 Python
Python中字典(dict)合并的四种方法总结
Aug 10 Python
利用scrapy将爬到的数据保存到mysql(防止重复)
Mar 31 Python
python实现超简单的视频对象提取功能
Jun 04 Python
详解python3中zipfile模块用法
Jun 18 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
使用Python的datetime库处理时间(RPA流程)
Nov 24 Python
Pytorch之view及view_as使用详解
Dec 31 Python
SpringBoot实现登录注册常见问题解决方案
Mar 04 Python
keras使用Sequence类调用大规模数据集进行训练的实现
Jun 22 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 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数字游戏 计算24算法
2012/06/10 PHP
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
Bootstrap实现下拉菜单效果
2016/04/29 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
Python函数式编程指南(四):生成器详解
2015/06/24 Python
利用Anaconda完美解决Python 2与python 3的共存问题
2017/05/25 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
Python 实现淘宝秒杀的示例代码
2018/01/02 Python
Django实现学生管理系统
2019/02/26 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
Python telnet登陆功能实现代码
2020/04/16 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
MYSQL基础面试题
2012/05/13 面试题
我未来的职业规划范文
2014/01/11 职场文书
打架检讨书400字
2014/01/17 职场文书
房屋租赁协议书
2014/04/10 职场文书
优质护理服务演讲稿
2014/05/07 职场文书
教师批评与自我批评剖析材料
2014/10/16 职场文书
故意杀人案辩护词
2015/05/21 职场文书
入党宣誓仪式主持词
2015/06/29 职场文书
《女娲补天》教学反思
2016/02/20 职场文书
Python日志模块logging用法
2022/06/05 Python
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技