# Weaviateの機能と実践的な使い方
🚀 データは入れて終わりではありません。差分更新・条件一括削除・存在チェックまで、Weaviateのオブジェクト操作APIは運用に必要なCRUDを一通り揃えています。マスタ同期の設計を一段引き上げましょう。
📌 タイトルと機能のURL
タイトル: Manage objects
URL:
📝 概要
Weaviateはコレクション内のオブジェクトに対し、作成・読み取り・更新(部分/全置換)・削除という基本的なCRUD操作を提供します。これらはPythonクライアントの 配下にまとまっており、部分更新と完全置換を使い分けられる点が運用上の要になります。
🔧 機能の説明
主なメソッドは次のとおりです。
・insert: 単一オブジェクトを追加します。uuid、vector、references も指定できます。
・insert_many: 複数オブジェクトをまとめて追加します。
・update: 指定したプロパティだけを変更する部分更新です。他のプロパティは保持されます。
・replace: オブジェクト全体を新しいデータで上書きします。
・delete_by_id: UUID指定で1件削除します。
・delete_many: フィルタ条件に一致する複数オブジェクトを一括削除します。
・exists: オブジェクトの存在を確認します。
ベクトル化対象に設定したプロパティを更新すると、埋め込みは自動で再生成されます。これは更新時に透過的に行われます。
🛠 実践的な使い方
・部分更新: properties={"title": "更新後"})
・完全置換: properties={"title": "新", "body": "全体"})
・条件一括削除: "brand").equal("OldBrand"))
・再現性のあるIDには weaviate.util の generate_uuid5() を使い、同じ入力から常に同じUUIDを得ます。これで再投入時の重複IDを防げます。
・delete_many には事前確認用の dry_run(実削除せず対象を確認)と、詳細表示の verbose オプションがあります。
🎯 ユースケース
・商品マスタの差分同期で、価格や説明文だけを update の部分更新で反映する。
・廃番ブランドの一掃を delete_many(where=...) で条件一括削除する。
・generate_uuid5 で安定IDを採番し、日次同期で同一データの二重投入を防ぐ。
・本番削除の前に dry_run で対象件数を確認してから実行する。
⚠️ 注意点
・ベクトル化対象プロパティの更新は自動で再ベクトル化され、埋め込みコストが発生します。「説明文の更新=コスト発生」を同期設計に織り込んでください。
・update は部分更新、replace は全置換です。replace で渡し漏れたプロパティは消えるため取り違えに注意してください。
・delete_many には QUERY_MAXIMUM_RESULTS による削除上限があり、リソース枯渇を防ぐためのものです。大量削除は分割が必要です。
・削除は基本的に取り消せません。dry_run での事前確認を習慣にしてください。
#
Weaviate# #
VectorDatabase#