千家信息网

Elasticsearch文档索引的增删改查方法

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要介绍"Elasticsearch文档索引的增删改查方法"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Elasticsearch文档索引的增删改查方
千家信息网最后更新 2024年09月22日Elasticsearch文档索引的增删改查方法

这篇文章主要介绍"Elasticsearch文档索引的增删改查方法"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Elasticsearch文档索引的增删改查方法"文章能帮助大家解决问题。

接口幂等性

  • 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文档索引的增删改查方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0