温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Elasticsearch怎么安装及在Python中怎么使用

发布时间:2021-12-09 11:20:12 阅读:772 作者:柒染 栏目:大数据
Python开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

Elasticsearch怎么安装及在Python中怎么使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

官网对Elasticsearch 介绍的第一句话:

Elasticsearch is a distributed, RESTful search and analytics engine capable of solving a growing number of use cases. 

Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。Elasticsearch 的底层是开源库 Lucene。 Lucene是一个更加底层的搜索引擎,但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elasticsearch 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。可以这样理解,Lucene就好像是百度,然后你在百度的基础上开发了一个更高级,方便的搜索引擎,就是Elasticsearch 。Elasticsearch可以看做是一个NoSQL的数据库,提供数据的增删改查等基础功能。什么是NoSQL呢?

"Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontally scalable

下一代主要解决如下问题的数据库: 非关系型的,分布式的,开源的并且可以扁平扩展。

好,基本概念就说到这里,如果不懂也不影响你使用ElasticSearch,可以简单理解为它就是一个数据库,可以存放数据,但是存储的数据不是类似MySQL之类的结构化数据,最重要的是,ElasticSearch的检索速度非常快,基本查一条数据在毫秒级。另外还有一个基于Lucene的搜索引擎叫做 Solr, 它是Java搜索引擎服务器

今天主要介绍一下怎么安装和在Python中怎么使用。

1.  安装-Ubuntu

1.1 ElasticSearch

下载地址: https://www.elastic.co/cn/downloads/elasticsearch 

直接下载 zip文件就可以,下载之后,cd到安装的文件夹下面,然后执行:

 ./bin/elasticsearch 

这样就开启了ElasticSearch服务,

然后执行:

        curl http://localhost:9200/

这里如果没安装curl的话,需要先安装。

1.2 Kibana 

Kibana是一个ElasticSearch的管理工具,可以可视化 Elasticsearch 中的数据,顺便也就下载了吧。这个挺好用的,功能很多,我也在摸索中。。

 地址: https://www.elastic.co/cn/products/kibana

下载之后还是一样,cd到解压的文件下面,执行

./bin/kibana

然后打开浏览器,输入:

 http://localhost:5601

然后你就能看到一个比较帅的界面,在左边有个Dev的选项,这里可以写各种增删改查的语句。

2. Python中使用Elasticsearch

2.1 安装 

Python 中的Elasticsearch模块是Elasticsearch基于Python的客户端。安装很简单,直接用pip就可以,现在安装的版本是6.0.0.(2018-1-5)

 

pip install elasticsearch 或者

 

pip3 install elasticsearch

2.2 创建索引 

from elasticsearch import Elasticsearches = Elasticsearch(hosts="localhost:9200")# 这里默认是9200端口,如果你要把数据存到# 别的地方(服务器),改一下这个地址就可以。es.create(index='test_index',           doc_type='post')          

2.3  将数据存入到ES中

数据存储有三种方法,一种是用index直接单条存入,一种是用indices类下面的create方法,如果索引存在则直接存入,如果不存在则创建索引,然后存入。还有一种是用bulk方法批量存,这个是比较常用的方法。你可以根据你的实际任务来选择。

from elasticsearch import Elasticsearchfrom elasticsearch.helpers import bulkes = Elasticsearch(hosts="localhost:9200")index_name = "test_index"try:    # 每次存入数据前,可以做个索引    # 是否存在的判断,防止冲突。    es.indices.delete(index=index_name)except:    pass# 单条存入es.index(index="test_index",         doc_type="post",         id=1,         body={             "这里是你的数据": "这里是你的数据"}         )# 或者es.indices.create(index=index_name,                  body={                      "这里是你的数据": "这里是你的数据"}                  )# 批量存储with open("file_test.txt", 'r') as fr:    lines = fr.readlines()    i = 0    bulk_data = []    for line in lines:        data = {            "_index": "test_index",            "_type": "post",            "_source": {                "content": line}        }        bulk_data.append(data)        i += 1        # 每隔10000条数据存一次。        if i % 10000 == 0:            bulk(es, bulk_data)            bulk_data = []

2.3 检索数据

当把数据存入ES之后,就是检索了,不然存进去不用,那就真的没啥用了,是吧。检索也比较简单,主要是要理清这里面的逻辑关系是,实在不懂就多试试。举个栗子。

body = {    "query": {        "match": {            "title": {                "query": "中国 "            }        }    }}es.search(index="test_index",          doc_type="post",          body=body)

ElasticSearch主要是用来做检索的,你可以把它就理解为一个百度。所以熟练使用检索数据是很重要的。检索的时候,主要就是那个body里面写的东西,里面的query,match,是关键字,这个不能修改,title是你存储的时候定义的字段名字,然后“中国”是你要检索的内容。

看完上述内容,你们掌握Elasticsearch怎么安装及在Python中怎么使用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/alvinpy/blog/4392110

AI

开发者交流群×