ElasticSearch API & 文档 curd 操作
2021/8/12 8:06:18
本文主要是介绍ElasticSearch API & 文档 curd 操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Search API
- URI Search: uri 中带参数
- Request Body search: es 提供,基于json格式更加完备的DSL
指定查询索引
- /_search :集群上所有索引
- /index1,index2/_doc/_search :index1,index2 索引
- /index*/_doc/_search :以index开头的索引
请求后响应
- took: 花费时间
- total: 符合条件的总文档数
- hits: 结果集,默认前十
- _source: 文档原始信息
搜索相关性
- 搜索是用户和搜索引擎的对话
- 用户关系搜索结果的相关性
- 是否可以找到搜索相关内容
- 有多少部相关内容被返回
- 文档打分排序是否合理
- 结合业务需求,平衡结果排名
Page Rank 算法
- 不仅仅是内容
- 更重要的内容可信度
网站搜索引擎,其实是 销售的角色
- 提升销售业绩
- 去除库存
衡量相关性
- 查准率 - 尽可能返回较少无关文档
- 查全率 - 尽量返回较多的相关文档
- 排名 - 是否能按照相关度进行排序
文档的基本 CRUD 与批量操作
课程Demo
############Create Document############ #create document. 自动生成 _id POST users/_doc { "user" : "Mike", "post_date" : "2019-04-15T14:12:12", "message" : "trying out Kibana" } #create document. 指定Id。如果id已经存在,报错 PUT users/_doc/1?op_type=create { "user" : "Jack", "post_date" : "2019-05-15T14:12:12", "message" : "trying out Elasticsearch" } #create document. 指定 ID 如果已经存在,就报错 PUT users/_create/1 { "user" : "Jack", "post_date" : "2019-05-15T14:12:12", "message" : "trying out Elasticsearch" } ### Get Document by ID #Get the document by ID GET users/_doc/1 ### Index & Update #Update 指定 ID (先删除,在写入) GET users/_doc/1 PUT users/_doc/1 { "user" : "Mike" } #GET users/_doc/1 #在原文档上增加字段 POST users/_update/1/ { "doc":{ "post_date" : "2019-05-15T14:12:12", "message" : "trying out Elasticsearch" } } ### Delete by Id # 删除文档 DELETE users/_doc/1 ### Bulk 操作 #执行两次,查看每次的结果 #执行第1次 POST _bulk { "index" : { "_index" : "test", "_id" : "1" } } { "field1" : "value1" } { "delete" : { "_index" : "test", "_id" : "2" } } { "create" : { "_index" : "test2", "_id" : "3" } } { "field1" : "value3" } { "update" : {"_id" : "1", "_index" : "test"} } { "doc" : {"field2" : "value2"} } #执行第2次 POST _bulk { "index" : { "_index" : "test", "_id" : "1" } } { "field1" : "value1" } { "delete" : { "_index" : "test", "_id" : "2" } } { "create" : { "_index" : "test2", "_id" : "3" } } { "field1" : "value3" } { "update" : {"_id" : "1", "_index" : "test"} } { "doc" : {"field2" : "value2"} } ### mget 操作 GET /_mget { "docs" : [ { "_index" : "test", "_id" : "1" }, { "_index" : "test", "_id" : "2" } ] } #URI中指定index GET /test/_mget { "docs" : [ { "_id" : "1" }, { "_id" : "2" } ] } GET /_mget { "docs" : [ { "_index" : "test", "_id" : "1", "_source" : false }, { "_index" : "test", "_id" : "2", "_source" : ["field3", "field4"] }, { "_index" : "test", "_id" : "3", "_source" : { "include": ["user"], "exclude": ["user.location"] } } ] } ### msearch 操作 POST kibana_sample_data_ecommerce/_msearch {} {"query" : {"match_all" : {}},"size":1} {"index" : "kibana_sample_data_flights"} {"query" : {"match_all" : {}},"size":2} ### 清除测试数据 #清除数据 DELETE users DELETE test DELETE test2
相关阅读
- Document API https://www.elastic.co/guide/en/elasticsearch/reference/7.1/docs.html
- https://www.elastic.co/guide/en/elasticsearch/reference/7.1/search-search.html
- https://searchenginewatch.com/sew/news/2065080/search-engines-101
- https://www.huffpost.com/entry/search-engines-101-part-i_b_1104525
- https://www.entrepreneur.com/article/176398
- https://www.searchtechnologies.com/meaning-of-relevancy
- https://baike.baidu.com/item/搜索引擎发展史/2422574
这篇关于ElasticSearch API & 文档 curd 操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享