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探索之实现一个简单的HTTP服务器
Oct 28 Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 Python
Python验证文件是否可读写代码分享
Dec 11 Python
Python人脸识别初探
Dec 21 Python
Python图形绘制操作之正弦曲线实现方法分析
Dec 25 Python
Python迭代器与生成器基本用法分析
Jul 26 Python
python3获取url文件大小示例代码
Sep 18 Python
python 哈希表实现简单python字典代码实例
Sep 27 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
Mar 14 Python
python中setuptools的作用是什么
Jun 19 Python
Python中lru_cache的使用和实现详解
Jan 25 Python
matplotlib grid()设置网格线外观的实现
Feb 22 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 开源框架22个简单简介
2009/08/24 PHP
php设计模式 Delegation(委托模式)
2011/06/26 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
php读取flash文件高宽帧数背景颜色的方法
2015/01/06 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
解决php写入数据库乱码的问题
2019/09/17 PHP
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
javascript获取所有同类checkbox选项(实例代码)
2013/11/07 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
javascript折半查找详解
2015/01/26 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
JS抛物线动画实例制作
2018/02/24 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
python的类方法和静态方法
2014/12/13 Python
实例讲解Python3中abs()函数
2019/02/19 Python
详解Python3 pickle模块用法
2019/09/16 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
法学专业自我鉴定
2014/02/05 职场文书
质量标语大全
2014/06/12 职场文书
宣传普通话标语
2014/06/27 职场文书
铁路安全反思材料
2014/12/24 职场文书
财产保全担保书
2015/01/20 职场文书
mysql insert 存在即不插入语法说明
2022/03/25 MySQL