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

DashVector:ドキュメントの取得

最終更新日:Mar 12, 2026

Collection.query() は、DashVector コレクション内で指定されたベクターまたは既存ドキュメントのベクターと類似するドキュメントを検索します。また、メタデータフィルターのみを用いてドキュメントを取得することもできます。

クエリモード

Collection.query() は、指定するパラメーターに応じて 5 種類のクエリモードをサポートします。

モード必須パラメーター説明
ベクター検索vector指定された密ベクターに最も近いドキュメントを検索します。
プライマリキー検索id既存ドキュメントのベクターに最も近いドキュメントを検索します。
フィルター付きベクター検索vector または idfilter類似検索とメタデータフィルタリングを組み合わせます。
ハイブリッド検索vectorsparse_vector密ベクターと疎ベクターを組み合わせたキーワード対応型セマンティック検索を実行します。
一致検索filter のみ類似順位付けを行わず、メタデータフィルターのみでドキュメントを取得します。
vector および id のいずれも指定されない場合、query() は条件付きフィルターのみを使用した一致検索を実行します。

前提条件

開始する前に、以下の準備が完了していることを確認してください。

API シグネチャ

Collection.query(
    vector: Optional[Union[List[Union[int, float]], np.ndarray]] = None,
    id: Optional[str] = None,
    topk: int = 10,
    filter: Optional[str] = None,
    include_vector: bool = False,
    partition: Optional[str] = None,
    output_fields: Optional[List[str]] = None,
    sparse_vector: Optional[Dict[int, float]] = None,
    async_req: False
) -> DashVectorResponse

リクエストパラメーター

パラメーターデフォルト値説明
vectorOptional[Union[List[Union[int, float]], np.ndarray]]None類似検索用の密ベクター。
idOptional[str]None既存ドキュメントのプライマリキー。検索では、当該ドキュメントのベクターが使用されます。
topkint10返される結果の最大件数(類似度順にランク付け)。
filterOptional[str]NoneSQL WHERE 句構文を用いた条件付きフィルター。詳細については、「条件付きフィルタリング」をご参照ください。
include_vectorboolFalse応答にベクター情報を含めるかどうか。
partitionOptional[str]Noneパーティション名。検索範囲を特定のパーティションに制限します。
output_fieldsOptional[List[str]]None返却するフィールド。デフォルトではすべてのフィールドが返却されます。
sparse_vectorOptional[Dict[int, float]]Noneキーワード対応型セマンティック検索用の疎ベクター。各キーはディメンションのインデックス、各値は重みです。
async_reqboolFalse非同期モードを有効にするかどうか。

応答

query()DashVectorResponse オブジェクトを返します。

フィールド説明
codeintステータスコード。0 は成功を示します。詳細については、「ステータスコード」をご参照ください。0
messagestrステータスメッセージ。success
request_idstr一意のリクエスト識別子。19215409-ea66-4db9-8764-26ce2eb5bb99
outputList[<code data-tag="code" class="inline-code___exakR" id="code_d6787a3c">Doc</code>]類似検索の結果。--

サンプル

以下のすべてのサンプルでは、次のクライアント設定を使用します。プレースホルダーを実際の値に置き換えてください。

プレースホルダー説明
YOUR_API_KEYDashVector コンソールから取得した API キー
YOUR_CLUSTER_ENDPOINTクラスターエンドポイントの URL
import dashvector
import numpy as np

client = dashvector.Client(
    api_key='YOUR_API_KEY',
    endpoint='YOUR_CLUSTER_ENDPOINT'
)

# 対象となるコレクションを取得
collection = client.get(name='quickstart')
これらのサンプルを実行する前に、quickstart コレクションを作成し、ドキュメントを挿入してください。詳細については、「コレクションの作成」および「ドキュメントの挿入」をご参照ください。

ベクターによる検索

密ベクターを指定して、最も類似するドキュメントを検索します。

ret = collection.query(
    vector=[0.1, 0.2, 0.3, 0.4]
)
# クエリメソッドが正常に呼び出されたかを確認します。
if ret:
    print('query success')
    print(len(ret))
    for doc in ret:
        print(doc)
        print(doc.id)
        print(doc.vector)
        print(doc.fields)

結果セットをカスタマイズするには、topkoutput_fields、および include_vector を指定します。

ret = collection.query(
    vector=[0.1, 0.2, 0.3, 0.4],
    topk=100,
    output_fields=['name', 'age'],  # name および age フィールドのみを返却します。
    include_vector=True
)

プライマリキーによる検索

id パラメーターを使用して、保存済みドキュメントのベクターで検索します。ベクター値を直接指定する必要はありません。

ret = collection.query(
    id='1'
)
# クエリメソッドが正常に呼び出されたかを確認します。
if ret:
    print('query success')
    print(len(ret))
    for doc in ret:
        print(doc)
        print(doc.id)
        print(doc.vector)
        print(doc.fields)

idtopk および output_fields を組み合わせる方法は、ベクター検索の場合と同じです。

ret = collection.query(
    id='1',
    topk=100,
    output_fields=['name', 'age'],  # name および age フィールドのみを返却します。
    include_vector=True
)

条件付きフィルターによる検索

結果をメタデータで絞り込むために、filter パラメーターを追加します。フィルターは SQL WHERE 句構文に従います。

# ベクターまたはプライマリキーと条件付きフィルターを併用した類似検索を実行します。
ret = collection.query(
    vector=[0.1, 0.2, 0.3, 0.4],   # 検索用のベクターを指定します。代わりに、検索用のプライマリキーを指定することもできます。
    topk=100,
    filter='age > 18',             # age フィールドの値が 18 より大きいドキュメントに対して一致検索を実行します。
    output_fields=['name', 'age'], # name および age フィールドのみを返却します。
    include_vector=True
)
ヒント:filterid と組み合わせることで、プライマリキーに基づく検索結果をフィルター処理できます(vector を使用する必要はありません)。

密ベクターと疎ベクターを併用したハイブリッド検索

密ベクターと疎ベクターを組み合わせてキーワード対応型セマンティック検索を実行します。疎ベクターは、密埋め込みを補完するキーワードの重みを表します。

# 密ベクターと疎ベクターの両方を用いた類似検索を実行します。
ret = collection.query(
    vector=[0.1, 0.2, 0.3, 0.4],   # 検索用のベクターを指定します。
    sparse_vector={1: 0.3, 20: 0.7}
)

構成の詳細については、「キーワード対応型セマンティック検索」をご参照ください。

フィルターのみによる一致検索

vector および id の両方を省略することで、類似順位付けを行わず、メタデータ条件のみに基づいてドキュメントを取得できます。

# ベクターおよびプライマリキーを指定せずに、条件付きフィルターのみを用いた一致検索を実行します。
ret = collection.query(
    topk=100,
    filter='age > 18',             # age フィールドの値が 18 より大きいドキュメントに対して一致検索を実行します。
    output_fields=['name', 'age'], # name および age フィールドのみを返却します。
    include_vector=True
)

次のステップ