[英]Elasticsearch Bulk Indexing for handling new data incrementally
我已經實現了批量索引。 我想讓它更有效率。
# current implementation in Python
def products_to_index():
for product in all_products():
yield {
"_op_type": "index",
"_index": INDEX_NAME,
"_id": product.id,
"_source": {"name": product.name, "content": product.content},
}
def main(args):
# Connect to localhost:9200 by default.
es = Elasticsearch()
body = ANALYZER
es.indices.create(index=INDEX_NAME, body=body)
bulk(es, products_to_index())
這個實現似乎只是獲取所有數據並逐批索引它們。 我想執行一個額外的步驟來檢查這個條目是否已經被索引。
我還考慮過從本地保存索引的路徑加載。 不知道如何繼續。
我查看了 API 文檔,但找不到任何文檔。
通過使用index
你告訴 elasticsearch 我想索引這個文檔,如果它存在則更新它。 但是,如果您使用具有特定 id 的create
類型,則允許以“放置如果不存在”方式進行彈性搜索。 當您使用批量API時,您的響應將分別顯示每個文檔的結果,您可以知道插入了哪個文檔,沒有插入哪個文檔。 為此,只需將您的op_type
設置為create
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.