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中用Spark模块的使用教程
Apr 13 Python
Python实现计算文件夹下.h和.cpp文件的总行数
Apr 23 Python
python使用nntp读取新闻组内容的方法
May 08 Python
Python中pygame的mouse鼠标事件用法实例
Nov 11 Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 Python
Python多线程应用于自动化测试操作示例
Dec 06 Python
用python打印菱形的实操方法和代码
Jun 25 Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 Python
Tensorflow: 从checkpoint文件中读取tensor方式
Feb 10 Python
python实现电子词典
Mar 03 Python
Python进程间通信multiprocess代码实例
Mar 18 Python
Anaconda使用IDLE的实现示例
Sep 23 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中的phpinfo()函数
2013/06/06 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
php简单获取目录列表的方法
2015/03/24 PHP
详谈PHP程序Laravel 5框架的优化技巧
2016/07/18 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
五种js判断是否为整数类型方式
2015/12/03 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
基于javascript实现按圆形排列DIV元素(三)
2016/12/02 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
JS中关于正则的巧妙操作
2017/08/31 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
jQuery操作动画完整实例分析
2020/01/10 jQuery
js实现跳一跳小游戏
2020/07/31 Javascript
Python数据类型详解(二)列表
2016/05/08 Python
Python调用百度根据经纬度查询地址的示例代码
2019/07/07 Python
Django框架 querySet功能解析
2019/09/04 Python
Python2.x与3​​.x版本有哪些区别
2020/07/09 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
Java中实现多态的机制
2015/08/09 面试题
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
学校通报表扬范文
2015/05/04 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS
Python几种酷炫的进度条的方式
2022/04/11 Python
python中validators库的使用方法详解
2022/09/23 Python