連接Elasticsearch(ES)服務(wù)器是進(jìn)行數(shù)據(jù)搜索和分析的常用操作。Elasticsearch是一個基于Lucene的搜索引擎,提供了RESTful API來進(jìn)行索引、搜索和管理數(shù)據(jù)。
連接Elasticsearch(ES)服務(wù)器是進(jìn)行數(shù)據(jù)搜索和分析的常用操作。Elasticsearch是一個基于Lucene的搜索引擎,提供了RESTful API來進(jìn)行索引、搜索和管理數(shù)據(jù)。
以下是一個詳細(xì)的Python代碼示例,展示如何連接到Elasticsearch服務(wù)器并執(zhí)行一些基本操作。這個示例使用了官方的
elasticsearch-py
客戶端庫。
首先,你需要安裝
elasticsearch
庫。如果你還沒有安裝,可以使用pip進(jìn)行安裝:
bash
pip install elasticsearch
以下是一個完整的Python腳本,展示了如何連接到Elasticsearch服務(wù)器,創(chuàng)建索引,添加文檔,并進(jìn)行搜索。
from elasticsearch import Elasticsearch, helpers
# 配置Elasticsearch連接
es = Elasticsearch(
['http://localhost:9200'], # Elasticsearch服務(wù)器地址和端口
http_auth=('username', 'password'), # 如果需要認(rèn)證,填寫用戶名和密碼
use_ssl=False, # 如果使用HTTPS,設(shè)置為True
verify_certs=False # 如果使用HTTPS且自簽名證書,設(shè)置為False
)
# 檢查連接是否成功
if es.ping():
print("Successfully connected to Elasticsearch!")
else:
print("Could not connect to Elasticsearch")
exit()
# 創(chuàng)建索引
index_name = 'my_index'
if not es.indices.exists(index=index_name):
# 定義索引的映射(Schema)
mappings = {
'properties': {
'title': {'type': 'text'},
'content': {'type': 'text'},
'author': {'type': 'keyword'}
}
}
# 創(chuàng)建索引
es.indices.create(index=index_name, body={'mappings': mappings})
print(f"Index '{index_name}' created successfully.")
else:
print(f"Index '{index_name}' already exists.")
# 添加文檔
documents = [
{"_id": 1, "title": "Elasticsearch Basics", "content": "Learn the basics of Elasticsearch.", "author": "John Doe"},
{"_id": 2, "title": "Advanced Elasticsearch", "content": "Go deeper into Elasticsearch features.", "author": "Jane Smith"},
{"_id": 3, "title": "Elasticsearch Performance", "content": "Optimize Elasticsearch for performance.", "author": "Alice Johnson"}
]
# 使用bulk API批量添加文檔
actions = [
{
"_index": index_name,
"_id": doc['_id'],
"_source": doc
}
for doc in documents
]
helpers.bulk(es, actions)
print("Documents added successfully.")
# 搜索文檔
search_body = {
"query": {
"match": {
"content": "Elasticsearch"
}
}
}
response = es.search(index=index_name, body=search_body)
print("Search results:")
for hit in response['hits']['hits']:
print(hit['_source'])
# 清理(可選):刪除索引
# es.indices.delete(index=index_name)
# print(f"Index '{index_name}' deleted successfully.")
Elasticsearch(['http://localhost:9200'])
:連接到運行在本地主機(jī)上的Elasticsearch服務(wù)器,默認(rèn)端口為9200。
http_auth=('username', 'password')
:如果Elasticsearch服務(wù)器需要認(rèn)證,填寫用戶名和密碼。
use_ssl
和
verify_certs
:如果連接使用HTTPS,可以啟用這些選項。
es.ping()
方法檢查連接是否成功。
es.indices.exists(index=index_name)
檢查索引是否存在。
es.indices.create(index=index_name, body={'mappings': mappings})
創(chuàng)建索引,并定義文檔的映射。
helpers.bulk(es, actions)
批量添加文檔到索引中。
es.search(index=index_name, body=search_body)
進(jìn)行搜索,并打印搜索結(jié)果。
es.indices.delete(index=index_name)
刪除索引。
use_ssl
和
verify_certs
選項。
MethodTimer:一個輕量級的.NET運行耗時統(tǒng)計庫
閱讀構(gòu)建人工智能模型基礎(chǔ):TFDS和Keras的完美搭配
閱讀創(chuàng)建鴻蒙應(yīng)用的橫屏顯示直尺應(yīng)用全程解析
閱讀WiFi基礎(chǔ)(七):WiFi漫游與WiFi組網(wǎng)
閱讀遷移學(xué)習(xí):人工智能模型訓(xùn)練的絕學(xué)
閱讀如何使用 Pytorch 中的 DataSet 和 DataLoader
閱讀golang slice相關(guān)常見的性能優(yōu)化手段
閱讀連接Elasticsearch服務(wù)器的Python代碼示例
閱讀國產(chǎn)操作系統(tǒng)上實現(xiàn)RTMP推流攝像頭視頻和麥克風(fēng)聲音到流媒體服務(wù)器
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2024 haote.com 好特網(wǎng)