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抓取行政区划码的方法
Nov 28 Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 Python
在python里从协程返回一个值的示例
Feb 19 Python
Django之提交表单与前后端交互的方法
Jul 19 Python
在Django admin中编辑ManyToManyField的实现方法
Aug 09 Python
详解基于python的多张不同宽高图片拼接成大图
Sep 26 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
Python性能分析工具Profile使用实例
Nov 19 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
Dec 12 Python
Python3+Selenium+Chrome实现自动填写WPS表单
Feb 12 Python
Python 的 __str__ 和 __repr__ 方法对比
Sep 02 Python
利用Opencv实现图片的油画特效实例
Feb 28 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
Protoss兵种对照表
2020/03/14 星际争霸
paypal即时到账php实现代码
2010/11/28 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
thinkphp跨库操作的简单代码实例
2016/09/22 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
javascript 节点排序 2
2011/01/31 Javascript
JavaScript 中的日期和时间及表示标准介绍
2013/08/21 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
nodejs 实现模拟form表单上传文件
2014/07/14 NodeJs
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
巧用canvas
2017/01/21 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
[02:43]DOTA2亚洲邀请赛场馆攻略——带你走进东方体育中心
2018/03/19 DOTA
python自动化测试实例解析
2014/09/28 Python
详解Python中的循环语句的用法
2015/04/09 Python
Python计算字符宽度的方法
2016/06/14 Python
python如何获取服务器硬件信息
2017/05/11 Python
python 构造三维全零数组的方法
2018/11/12 Python
python的常用模块之collections模块详解
2018/12/06 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
卫校中专生的自我评价
2014/01/15 职场文书
项目建议书范文
2014/05/12 职场文书
新文化运动的基本口号
2014/06/21 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
Python Pandas知识点之缺失值处理详解
2021/05/11 Python
java设计模式--七大原则详解
2021/07/21 Java/Android
Java生成日期时间存入Mysql数据库的实现方法
2022/03/03 Java/Android
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers