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 18 Python
Python中尝试多线程编程的一个简明例子
Apr 07 Python
Python实现遍历数据库并获取key的值
May 17 Python
Python3读取zip文件信息的方法
May 22 Python
Python计算一个文件里字数的方法
Jun 15 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
Nov 09 Python
Python 实现一行输入多个值的方法
Apr 21 Python
python破解zip加密文件的方法
May 31 Python
python判断输入日期为第几天的实例
Nov 13 Python
Java ExcutorService优雅关闭方式解析
May 30 Python
Python实现画图软件功能方法详解
Jul 28 Python
python如何利用Mitmproxy抓包
Oct 10 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
Php注入点构造代码
2008/06/14 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
jquery获得下拉框值的代码
2011/08/13 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
vue实现条件叠加搜索的解决方法
2019/05/28 Javascript
Angular6项目打包优化的实现方法
2019/12/15 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
Python中统计函数运行耗时的方法
2015/05/05 Python
Python设计模式之命令模式简单示例
2018/01/10 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
Django 外键的使用方法详解
2019/07/19 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
Opencv 图片的OCR识别的实战示例
2021/03/02 Python
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
英国高档百货连锁店:John Lewis
2017/11/20 全球购物
数字漫画:comiXology
2020/06/13 全球购物
工商企业管理应届生求职信
2013/11/03 职场文书
股权投资意向书
2014/04/01 职场文书
签订劳动合同通知书
2015/04/16 职场文书
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL