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使用marshal模块序列化实例
Sep 25 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
Sep 18 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 Python
django使用xlwt导出excel文件实例代码
Feb 06 Python
Django组件之cookie与session的使用方法
Jan 10 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 Python
python实现网站微信登录的示例代码
Sep 18 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
Nov 07 Python
python如何基于redis实现ip代理池
Jan 17 Python
Python语言编写智力问答小游戏功能
Oct 13 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 Python
Python中的程序流程控制语句
Feb 24 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
escape unescape的php下的实现方法
2007/04/27 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
解析PHP自带的进位制之间的转换函数
2013/06/08 PHP
Javascript常考语句107条收集
2010/03/09 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
js H5 canvas投篮小游戏
2016/08/18 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
js html实现计算器功能
2018/11/13 Javascript
vue2.x数组劫持原理的实现
2020/04/19 Javascript
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
python strip()函数 介绍
2013/05/24 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
pywinauto自动化操作记事本
2019/08/26 Python
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
历史专业毕业生的自我鉴定
2013/11/15 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
德劲DE1102数字调谐收音机机评
2022/04/07 无线电
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技