点击上方“Python爬虫与数据挖掘”,进行关注
回复“书籍”即可获赠Python从入门到进阶共10本电子书
今
日
鸡
汤
我死国生,我死犹荣,身虽死精神长生,成功成仁,实现大同。--赵博生
/1 前言/
Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。

那么如何实现 Elasticsearch和 Python 的对接成为我们所关心的问题了 (怎么什么都要和 Python 关联啊)。
/2 Python 交互/
所以,Python 也就提供了可以对接 Elasticsearch的依赖库。
pip install elasticsearch
初始化连接一个 Elasticsearch 操作对象。
def __init__(self, index_type: str, index_name: str, ip="127.0.0.1"):
# self.es = Elasticsearch([ip], http_auth=('username', 'password'), port=9200)
self.es = Elasticsearch("localhost:9200")
self.index_type = index_type
self.index_name = index_name
默认端口 9200,初始化前请确保本地已搭建好 Elasticsearch的所属环境。
根据 ID 获取文档数据
def get_doc(self, uid):
return self.es.get(index=self.index_name, id=uid)
插入文档数据
def insert_one(self, doc: dict):
self.es.index(index=self.index_name, doc_type=self.index_type, body=doc)
def insert_array(self, docs: list):
for doc in docs:
self.es.index(index=self.index_name, doc_type=self.index_type, body=doc)
搜索文档数据
def search(self, query, count: int = 30):
dsl = {
"query": {
"multi_match": {
"query": query,
"fields": ["title", "content", "link"]
}
},
"highlight": {
"fields": {
"title": {}
}
}
}
match_data = self.es.search(index=self.index_name, body=dsl, size=count)
return match_data
def __search(self, query: d

本文详细介绍如何使用Python与Elasticsearch集成,包括初始化连接、文档的增删查改操作,以及从MongoDB批量导入数据到Elasticsearch的方法。同时,介绍了如何构建一个简单的爬虫抓取百度百科数据,并使用Celery任务队列进行分布式抓取。
最低0.47元/天 解锁文章
1441

被折叠的 条评论
为什么被折叠?



