簡體   English   中英

用於增量處理新數據的 Elasticsearch 批量索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM