ES6.6.2 使用小结 - 文档操作

浅浅的花香味﹌ 2022-02-28 04:20 324阅读 0赞

1.文档基本操作分为:文档获取、删除、更新。以下是一些简单的测试。

2.假设当前ES存在如下数据(两条)。

20190324165933149.png

3.文档操作源码如下:

  1. package com.bas.demo;
  2. import com.bas.util.ESUtil;
  3. import org.elasticsearch.action.get.GetResponse;
  4. import org.elasticsearch.client.transport.TransportClient;
  5. import org.junit.jupiter.api.Test;
  6. import java.io.IOException;
  7. import java.util.concurrent.ExecutionException;
  8. import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
  9. /**
  10. * 文档管理
  11. */
  12. public class DocumentDemo {
  13. public static void main(String[] args) {
  14. System.out.println(ESUtil.selectDocument("app_account", "blog" , "d759rmkBsxnypktQHp5P"));
  15. }
  16. @Test
  17. public void deleteDoc() {
  18. ESUtil.deleteDocument("app_account", "blog" , "eL59rmkBsxnypktQIJ4I");
  19. }
  20. @Test
  21. public void updateDoc() {
  22. try {
  23. ESUtil.updateDocument("app_account", "blog" , "er6VrmkBsxnypktQsZ6I" ,
  24. jsonBuilder().startObject()
  25. .field("title","qqqqqqqqqqqqqq")
  26. .endObject());
  27. } catch (ExecutionException e) {
  28. e.printStackTrace();
  29. } catch (InterruptedException e) {
  30. e.printStackTrace();
  31. } catch (IOException e) {
  32. e.printStackTrace();
  33. }
  34. }
  35. @Test
  36. public void upsertDoc() throws IOException, ExecutionException, InterruptedException {
  37. ESUtil.upsertDocument("app_account", "blog" , "6J3HrmkBHcVcCKaQcmRP",
  38. jsonBuilder().startObject()
  39. .field("id","5")
  40. .field("title","标题asd")
  41. .field("content","asdhjjje")
  42. .field("postdate","2019-03-24 17:38:00")
  43. .field("url","bas")
  44. .endObject(),
  45. jsonBuilder().startObject()
  46. .field("title","更新title")
  47. .endObject()
  48. );
  49. }
  50. }

其中,ES工具类位于:ES6.6.2 使用小结 - ES工具类使用

值得注意的是,方法参数的id为文档数据中的字段 “_id“。

4.首先是文档的获取结果图,执行Document.main()。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBU3RyaXZlcg_size_16_color_FFFFFF_t_70

5.文档删除结果图,执行Document.deleteDoc()。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBU3RyaXZlcg_size_16_color_FFFFFF_t_70 1

6.文档更新分两种。首先执行Document.updateDoc()如图:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBU3RyaXZlcg_size_16_color_FFFFFF_t_70 2

ES中的数据更新为现在这样:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBU3RyaXZlcg_size_16_color_FFFFFF_t_70 3

接着就是upsert更新type了,即:如果type中不存在这个文档就插入,存在了就更新数据,执行Document.upsertDoc(),如图:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBU3RyaXZlcg_size_16_color_FFFFFF_t_70 4

因为type中已经存在_id为”7Z_qrmkBHcVcCKaQfGQ3”的文档,所以执行了更新操作,如图:

20190324171250675.png

同样的,如果Document.upsertDoc()中的参数改成这样时将插入数据,如图:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBU3RyaXZlcg_size_16_color_FFFFFF_t_70 5

ES新增文档了,如图:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JBU3RyaXZlcg_size_16_color_FFFFFF_t_70 6

发表评论

表情:
评论列表 (有 0 条评论,324人围观)

还没有评论,来说两句吧...

相关阅读

    相关 kibana 操作es文档详细总结

    前言 在上一篇,分享了使用kibana如何对索引进行增删改查等操作,事实上在日常开发与运维中,操作索引毕竟是比较谨慎的事情,但是对于索引中文档的增删查改却是随处可见的,e

    相关 es的基本原理和操作文档

    一、背景知识 1、搜索的分类 我们想要寻找某些信息的时候,一般会直接去百度、谷歌、搜歌、360搜索等,搜索分为垂直搜索、互联网搜索、IT系统的搜索。搜索,就是在任何

    相关 es的基本原理和操作文档

    一、背景知识 1、搜索的分类 我们想要寻找某些信息的时候,一般会直接去百度、谷歌、搜歌、360搜索等,搜索分为垂直搜索、互联网搜索、IT系统的搜索。搜索,就是在任何

    相关 ES6.6.2 使用小结 - 批量操作

    1.文档的操作基本分为:查询、删除、更新、插入。   这些操作都可以进行批量进行,包括:批量处理器执行、批量执行、查询时执行删除。 2.假设当前ES存在如下数据(两条)。