すべてのプロダクト
Search
ドキュメントセンター

DashVector:ドキュメントの挿入

最終更新日:Mar 12, 2026

Python SDK を使用して、1 つ以上のドキュメントを DashVector コレクションに挿入します。

ドキュメント ID がコレクションにすでに存在する場合、挿入操作はそのドキュメントを上書きせずにスキップします。既存のドキュメントを更新するには、代わりに アップサート メソッドを使用します。ドキュメント ID を省略した場合、DashVector は自動的に ID を生成し、応答で返します。

前提条件

開始する前に、以下を準備してください。

API 定義

Collection.insert(
    docs: Union[Doc, List[Doc], Tuple, List[Tuple]],
    partition: Optional[str] = None,
    async_req: False
) -> DashVectorResponse

すべての例では、既存の quickstart という名前のコレクションを使用します。コードを実行する前に、YOUR_API_KEY をご利用の API キーに、YOUR_CLUSTER_ENDPOINT をご利用のクラスターのエンドポイントに置き換えてください。

import dashvector
from dashvector import Doc
import numpy as np

client = dashvector.Client(
    api_key='YOUR_API_KEY',
    endpoint='YOUR_CLUSTER_ENDPOINT'
)
collection = client.get(name='quickstart')
説明

これらの例を実行する前に、quickstart コレクションを作成してください。詳細については、「コレクションの作成」の例のセクションをご参照ください。

単一ドキュメントの挿入

# Doc オブジェクトを使用したドキュメントの挿入
ret = collection.insert(
    Doc(
        id='1',
        vector=[0.1, 0.2, 0.3, 0.4]
    )
)
assert ret

# 省略形: Doc オブジェクトの代わりにタプルを使用
ret = collection.insert(
    ('2', [0.1, 0.1, 0.1, 0.1])               # (id, vector)
)

フィールドを持つドキュメントの挿入

fields パラメーターを介して、メタデータをキーと値のペアとしてアタッチします。コレクション作成時に定義されたフィールドは、事前定義された型と一致する必要があります。追加フィールドはスキーマフリーであり、strintbool、または float の値を受け入れます。詳細については、「スキーマフリー」をご参照ください。

# 事前定義フィールドとスキーマフリーフィールドを持つドキュメントの挿入
ret = collection.insert(
    Doc(
        id='3',
        vector=np.random.rand(4),
        fields={
            # 事前定義フィールド (型はコレクションスキーマと一致する必要があります)
            # name:str, weight:float, age:int, id:dashvector.long
            'name': 'zhangsan', 'weight':70.0, 'age':30, 'id':1234567890,
            # スキーマフリーフィールド (事前定義不要)
            'anykey1': 'str-value', 'anykey2': 1,
            'anykey3': True, 'anykey4': 3.1415926
        }
    )
)

# 省略形: フィールドを持つタプルを使用
ret = collection.insert(
    ('4', np.random.rand(4), {'foo': 'bar'})  # (id, vector, fields)
)

複数ドキュメントの挿入

# Doc オブジェクトを使用した 10 個のドキュメントの一括挿入
ret = collection.insert(
    [
        Doc(id=str(i+5), vector=np.random.rand(4)) for i in range(10)
    ]
)

# フィールドを持つタプルを使用した一括挿入
ret = collection.insert(
    [
        ('15', [0.2,0.7,0.8,1.3], {'age': 20}),
        ('16', [0.3,0.6,0.9,1.2], {'age': 30}),
        ('17', [0.4,0.5,1.0,1.1], {'age': 40})
    ]                                         # List[(id, vector, fields)]
)
assert ret

ドキュメントの非同期挿入

async_req=True を設定して、非ブロッキング挿入を実行します。返された Future で .get() を呼び出して結果を取得します。

# 10 個のドキュメントを非同期で挿入
ret_funture = collection.insert(
    [
        Doc(id=str(i+18), vector=np.random.rand(4), fields={'name': 'foo' + str(i)}) for i in range(10)
    ],
    async_req=True
)
# 非同期挿入が完了するまでブロック
ret = ret_funture.get()

疎ベクターを持つドキュメントの挿入

sparse_vector パラメーターを使用して、疎表現を密ベクターとともに保存します。

ret = collection.insert(
    Doc(
        id='28',
        vector=[0.1, 0.2, 0.3, 0.4],
        sparse_vector={1:0.4, 10000:0.6, 222222:0.8}
    )
)

パラメーター

リクエストパラメーター

パラメーターデフォルト説明
docsUnion[Doc, List[Doc], Tuple, List[Tuple]]必須挿入する 1 つ以上のドキュメント
partitionOptional[str]Noneターゲットパーティション名
async_reqboolFalse非同期モードを有効化

パラメーターに関する注意事項:

  • タプル形式: 要素は (id, vector) または (id, vector, fields) の順序に従う必要があります。タプルは Doc オブジェクトと同等です。

  • フィールドキーと値: 各フィールドキーは str である必要があります。値は strintbool、または float を受け入れます。

    • コレクション作成時にフィールドキーが事前定義されている場合、値は事前定義された型と一致する必要があります。

    • フィールドキーが事前定義されていない場合、スキーマフリーフィールドとして扱われ、サポートされている任意の型の値を受け入れます。

  • 事前定義フィールドの詳細については、「スキーマフリー」をご参照ください。

応答

このメソッドは、以下のプロパティを持つ DashVectorResponse オブジェクトを返します。

プロパティ説明
codeintステータスコード。0 は成功を示します。詳細については、「ステータスコード」をご参照ください。0
messagestr結果メッセージsuccess
request_idstr一意のリクエスト識別子19215409-ea66-4db9-8764-26ce2eb5bb99