专栏名称: 马哥Linux运维
马哥linux致力于linux运维培训,连续多年排名第一,订阅者可免费获得学习机会和相关Linux独家实战资料!
目录
相关文章推荐
51好读  ›  专栏  ›  马哥Linux运维

在Python中使用Elasticsearch

马哥Linux运维  · 公众号  · 运维  · 2019-06-08 22:00

正文

请到「今天看啥」查看全文


暂时不用管mappings是什么,我们会在后面讨论它。它实际上做的只是创建一个你自己的Schema文档。creation_date是不言自明的。number_of_shards表示将保留此索引数据的分区数量。将整个数据保存在单个磁盘上毫无意义。如果你运行的是多个Elastic节点的集群,那么整个数据都会被分割。简而言之,如果有5个分片,则整个数据可以在5个分片中使用,并且ElasticSearch集群可以服务来自其任何节点的请求。

副本讨论的是你的数据的镜像。如果你熟悉主从概念,那么这对你来说不应该是新事物。你可以了解更多关于基本ES概念。

创建索引的cURL版本是单线程的。


你也可以一次执行索引创建和记录插入任务。你所要做的就是以JSON格式传递你的记录。你可以在PostMan中使用下面的东西:

请确保你将Content-Type设置为application/json.

一个名为company的索引会被 创建如果它原本不存在的话,然后在这里创建一个名为employees的新类型。Type实际上是RDBMS中的表的ES版本。

上述请求将输出以下JSON结构:

你传递/1作为你的记录的ID,但这是不必要的。它所做的只是将_id字段设置为值1,然后数据以JSON格式传递,最终作为新记录或文档插入。如果你从浏览器访问http://localhost:9200/company/employees/1,你会看到如下所示的内容:

你可以看到元和实际记录。 如果你想,可以将请求更改为http://localhost:9200/company/employees/1/_source,那么就会仅输出JSON结构记录。

cURL版本将是:

如果你想更新该记录怎么办?这很简单。你所要做的就是改变你的JSON记录。如下所示:

它会生成以下输出:

注意现在_result字段设置为updated而不是created。

当然,你也可以删除某些记录。

如果你疯了,或者你的女朋友甩了你,你可以通过从命令行运行curl -XDELETE localhost:9200/_all来毁掉整个世界。

让我们做一些基本的搜索。 如果运行http://localhost:9200/company/employees/_search?q=adnan,它将搜索employees类型下的所有字段并返回相关记录。







请到「今天看啥」查看全文