python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python使用elasticsearch

python使用elasticsearch的过程详解

作者:酷爱码

Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene基础之上,这篇文章主要介绍了python使用elasticsearch的详细过程,需要的朋友可以参考下

一. 什么是 Elasticsearch

想查数据就免不了搜索,搜索就离不开搜索引擎,百度、谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索引了互联网上开放的所有网页和数据。然而对于我们自己的业务数据来说,肯定就没必要用这么复杂的技术了,如果我们想实现自己的搜索引擎,方便存储和检索,Elasticsearch 就是不二选择,它是一个全文搜索引擎,可以快速地储存、搜索和分析海量数据。

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

二. 为什么要用 Elasticsearch

Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。

那 Lucene 又是什么?Lucene 可能是目前存在的,不论开源还是私有的,拥有最先进,高性能和全功能搜索引擎功能的库,但也仅仅只是一个库。要用上 Lucene,我们需要编写 Java 并引用 Lucene 包才可以,而且我们需要对信息检索有一定程度的理解才能明白 Lucene 是怎么工作的,反正用起来没那么简单。

那么为了解决这个问题,Elasticsearch 就诞生了。Elasticsearch 也是使用 Java 编写的,它的内部使用 Lucene 做索引与搜索,但是它的目标是使全文检索变得简单,相当于 Lucene 的一层封装,它提供了一套简单一致的 RESTful API 来帮助我们实现存储和检索。

所以 Elasticsearch 仅仅就是一个简易版的 Lucene 封装吗?那就大错特错了,Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎。 它可以被下面这样准确的形容:

一个分布式的实时文档存储,每个字段可以被索引与搜索
一个分布式实时分析搜索引擎
能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
总之,是一个相当牛逼的搜索引擎,维基百科、Stack Overflow、GitHub 都纷纷采用它来做搜索。

使用Python连接Elasticsearch的详细过程如下:

安装elasticsearch-py库:
在命令行中使用pip安装elasticsearch-py库:

$ pip install elasticsearch

导入elasticsearch库:
在Python脚本中导入elasticsearch库:

from elasticsearch import Elasticsearch

连接到Elasticsearch:
使用Elasticsearch类创建一个连接到Elasticsearch集群的对象:

es = Elasticsearch(hosts=[{'host': 'localhost', 'port': 9200}])

创建索引:
使用create_index方法创建一个新的索引:

es.indices.create(index='my_index', ignore=400)

索引文档:
使用index方法将文档插入到索引中:

es.index(index='my_index', doc_type='my_type', id=1, body={'name': 'John', 'age': 30})

搜索文档:
使用search方法搜索文档:

result = es.search(index='my_index', body={'query': {'match': {'name': 'John'}}})

删除索引:
使用delete_index方法删除索引:

es.indices.delete(index='my_index', ignore=[400, 404])

以上是连接和使用Elasticsearch的基本步骤。你可以根据需要进行更高级的操作,例如更新文档、删除文档等。具体的操作可以参考elasticsearch-py库的文档。

到此这篇关于python使用elasticsearch的详细过程的文章就介绍到这了,更多相关python使用elasticsearch内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文