教你如何使用Python将MongoDB的数据索引到Elasticsearch中

2023-04-15 00:00:00 索引 如何使用 教你
  1. 安装Elasticsearch和Python的Elasticsearch模块
    首先需要安装Elasticsearch和Python的Elasticsearch模块。可以通过以下命令进行安装:
pip install elasticsearch
  1. 连接MongoDB
    连接到MongoDB数据库并获取需要索引的数据。可以使用pymongo库连接MongoDB数据库,例如:
from pymongo import MongoClient
client = MongoClient()
db = client.test_database
collection = db.test_collection
  1. 索引MongoDB数据
    将MongoDB中的数据索引到Elasticsearch中。可以使用Python的Elasticsearch模块索引数据,例如:
from elasticsearch import Elasticsearch
es = Elasticsearch(['localhost'], port=9200)
for doc in collection.find():
    es.index(index='my_index', doc_type='my_type', id=doc['_id'], body=doc)

其中,'localhost'9200是Elasticsearch的主机和端口号,'my_index'是索引名称,'my_type'是文档类型,'_id'是MongoDB默认的文档唯一标识符,'doc'是MongoDB中的文档数据。
4. 搜索索引数据
使用Elasticsearch模块搜索索引数据。例如:

result = es.search(index='my_index', body={'query': {'match': {'field': 'pidancode.com'}}})

其中,'field'是需要搜索的字段名称,'pidancode.com'是搜索的关键词。
完整代码如下:

from pymongo import MongoClient
from elasticsearch import Elasticsearch
client = MongoClient()
db = client.test_database
collection = db.test_collection
es = Elasticsearch(['localhost'], port=9200)
for doc in collection.find():
    es.index(index='my_index', doc_type='my_type', id=doc['_id'], body=doc)
result = es.search(index='my_index', body={'query': {'match': {'field': 'pidancode.com'}}})
print(result)

相关文章