elasticsearch笔记之文档基本操作

一、elasticsearch文档操作是什么?

我们都知道,在数据库里面,有很多的查询语句,插入数据,更新数据,删除数据等等,那么同理,在elasticsearch当中,也有类似的操作,只不过语法跟数据库不同罢了,那么究竟怎么使用呢?下面我们来看下。

二、使用步骤

1.添加数据

#往索引lhh里面加入一条信息
put /lhh/user/1
{
   
  "name":"miracle_gir",
  "age":25,
  "desc":"一定可以找到适合的工作的!",
  "tags":["编程","阅读","跑步","游戏"]
}

在这里插入图片描述

get lhh
#运行结果
{
   
  "lhh" : {
   
    "aliases" : {
    },
    "mappings" : {
   
      "properties" : {
   
        "age" : {
   
          "type" : "long"
        },
        "desc" : {
   
          "type" : "text",
          "fields" : {
   
            "keyword" : {
   
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "name" : {
   
          "type" : "text",
          "fields" : {
   
            "keyword" : {
   
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "tags" : {
   
          "type" : "text",
          "fields" : {
   
            "keyword" : {
   
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
      }
    },
    "settings" : {
   
      "index" : {
   
        "creation_date" : "1614345848042",
        "number_of_shards" : "1",
        "number_of_replicas" : "1",
        "uuid" : "3quPlmFTTiGToEZql-BBmA",
        "version" : {
   
          "created" : "7060299"
        },
        "provided_name" : "lhh"
      }
    }
  }
}

在这里插入图片描述

2.获取数据

#获取1号用户
get /lhh/user/1
#运行结果
#! Deprecation: [types removal] Specifying types in document get requests is deprecated, use the /{index}/_doc/{id} endpoint instead.
{
   
  "_index" : "lhh",
  "_type" : "user",
  "_id" : "1",
  "_version" : 2,
  "_seq_no" : 1,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
   
    "name" : "miracle_gir",
    "age" : 25,
    "desc" : "一定可以找到适合的工作的!",
    "tags" : [
      "编程",
      "阅读",
      "跑步",
      "游戏"
    ]
  }
}

在这里插入图片描述

3.更新数据

在这里插入图片描述

put /lhh/user/1
{
   
  "name":"lhh_mir_gir",
  "age":26,
  "desc":"我慢慢爱上写代码了,不知道这是不是真的!"
}
#运行结果
#! Deprecation: [types removal] Specifying types in document index requests is deprecated, use the typeless endpoints instead (/{index}/_doc/{id}, /{index}/_doc, or /{index}/_create/{id}).
{
   
  "_index" : "lhh",
  "_type" : "user",
  "_id" : "1",
  "_version" : 3,
  "result" : "updated",
  "_shards" : {
   
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 2,
  "_primary_term" : 1
}

在这里插入图片描述

但是我们现在不全部填充字段,我们只设置两个字段,那么会发生什么呢?

put /lhh/user/1
{
   
  "name":"lhh_mir_gir",
  "age":3
}
#运行结果
#! Deprecation: [types removal] Specifying types in document index requests is deprecated, use the typeless endpoints instead (/{index}/_doc/{id}, /{index}/_doc, or /{index}/_create/{id}).
{
   
  "_index" : "lhh",
  "_type" : "user",
  "_id" : "1",
  "_version" : 4,
  "result" : "updated",
  "_shards" : {
   
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 3,
  "_primary_term" : 1
}

在这里插入图片描述
结论:put /索引/类型/文档id文档id相同的情况下会覆盖掉之前的数据。

于是还有另外一种更新的操作,那就是post操作。
在这里插入图片描述

post /lhh/user/1/_update
{
   
  "doc":{
   
    "name":"abcdef"
  }
}
#运行结果
#! Deprecation: [types removal] Specifying types in document update requests is deprecated, use the endpoint /{index}/_update/{id} instead.
{
   
  "_index" : "lhh",
  "_type" : "user",
  "_id" : "1",
  "_version" : 6,
  "result" : "updated",
  "_shards" : {
   
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 6,
  "_primary_term" : 1
}

在这里插入图片描述

4.查询语句

假设我们的lhh索引里面有这些数据。
在这里插入图片描述

标题简单查询语句
get lhh/user/_search?q=name:lhh1号
#运行结果,其中的score就代表权重,权重越大,代表查询越精确。
#! Deprecation: [types removal] Specifying types in search requests is deprecated.
{
   
  "took" : 6,
  "timed_out" : false,
  "_shards" : {
   
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DeprecationWarning: 在0.21版本中,linear_assignment_模块已经不再被推荐使用。 DeprecationWarning是Python中的一个警告类型,用于提示某个功能或模块已被弃用,并且不再建议使用。在这种情况下,linear_assignment_模块在0.21版本中被废弃,意味着它已经不再是推荐的使用方式。 当一个模块或功能被废弃时,通常是因为它存在一些问题或不再符合最新的设计标准。为了支持代码的可维护性和最佳实践,Python开发团队会定期审核和更新标准库中的模块,将一些废弃的部分标记为不推荐使用,并在未来的版本中删除。 针对这个警告,我们应该考虑查找替代方案。在应用中使用过程中,我们可以使用搜索引擎或查阅官方文档来找到更好的替代方式。新版本可能已经提供了一个更高效或更好的模块来完成相同的任务。 在我们应用的代码中,为了消除这个警告,可以考虑找到并修改使用了linear_assignment_模块的部分,替换为推荐的新模块或方法。同时,我们也可以在代码中加上警告过滤器,将警告转换为忽略或抑制,以确保在代码运行时不再显示这个警告。 总之,deprecationwarning警告是一个提醒我们使用替代方式的重要信息。通过及时了解和采取相应的行动,我们可以确保我们的代码在迁移到新版本时保持最佳状态和最佳性能。 ### 回答2: DeprecationWarning是Python解释器中的一种警告,用于指示某个特定的模块或功能已过时,不推荐使用,并可能在将来的版本中被移除。 该警告信息中提到的linear_assignment_模块指的是在0.21版本中已过时的线性分配模块。 在0.21版本中,该模块被标记为过时,意味着该模块的使用不再被推荐,并且在将来的版本中可能会被移除。这是为了鼓励开发者使用更优化、更先进的替代方案。 当我们在使用该模块时,Python解释器会发出DeprecationWarning警告,提醒我们该模块已过时。这意味着我们应该尽快停止使用该模块,并寻找一个替代方案来替代它。 为了解决这个警告,我们应该查看新版本的文档,了解替代方案是什么。在这种情况下,我们需要查看0.21版本的文档,寻找关于线性分配的新模块或功能。 有时候,过时的模块可能已被移除,或者在后续版本中进行了重大改变。因此,及早更新和调整我们的代码是很重要的,以适应新版本的Python。 总之,当我们遇到DeprecationWarning警告时,我们应该尽快查找替代方案,并更新我们的代码,以保持与最新版本的Python和相关库的兼容性。这样可以确保我们的代码在未来的更新中可以正常运行,并且利用到最新的功能和改进。 ### 回答3: 在0.21版本中,linear_assignment_模块已被弃用。这意味着在未来的版本中,该模块可能会被移除或发生重大变化。因此,建议在编写代码时不要使用该模块。 如果你需要进行线性分配问题的求解,可以考虑使用其他替代方案来替代linear_assignment_模块。目前,可以采用python库中的scipy.optimize.linear_sum_assignment函数来解决线性分配问题。 需要注意的是,由于linear_assignment_模块被弃用,所以在进行升级到0.21版本的代码中,需要修改相关的代码部分,以适应新的解决方案。 总结而言,linear_assignment_模块在0.21版本中已经被弃用,建议在代码中避免使用该模块,并考虑使用其他替代方案来代替。这样可以确保你的代码在未来的版本中仍然能够正常运行,并具备更好的可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值