SEARCHPIPELINE
行レコードのパイプラインを返すには、標準の表関数DBMS_HYBRID_VECTOR.SEARCHPIPELINE
を使用します。
このパイプライン関数は、有効なJSON問合せ入力を受け入れ、行レコードのパイプラインを返します。構文は次のとおりです:
FUNCTION SEARCHPIPELINE(qparams JSON)
RETURN results PIPELINED;
results
のタイプはRECORD
です。results
には、次のフィールドが含まれています:
フィールド |
型 |
|
varchar2(18) |
|
number |
|
number |
|
number |
|
number |
|
number |
|
varchar2(32767) |
|
varchar2(4000) |
|
varchar2(4000) |
レコード・メンバーは、SELECT
文の列名です。これらの名前は、DBMS_HYBRID_VECTOR_SEARCH()
で返されるJSONフィールド名と同じです。ただし、paths
はレコード内のフィールドIDのリストであり、JSONの結果では(配列内で)そのIDが実際のパスにマップされます。また、結果レコードには、rowid
という名前のメンバーやrowid
型のメンバーを含めることができませんでした。
例12-1
SELECT
chartorowid(doc_rowid) as doc_rowid,
score,
vector_score,
text_score,
vector_rank,
text_rank,
chunk_text,
chunk_id,
paths
FROM dbms_hybrid_vector.searchpipeline(JSON('{"hybrid_index_name" : "idx",
"search_text" : "teamwork" }'));
表関数DBMS_HYBRID_VECTOR.SEARCHPIPELINE()
を使用しない場合は、元のSEARCH APIをJSON_TABLE
仕様でラップできます。これを次の例に示します:
SELECT jt.*
FROM
JSON_TABLE(
dbms_hybrid_vector.search(
json_object('hybrid_index_name' value 'idx',
'search_text' value 'teamwork'
RETURNING JSON)
),
'$[*]' COLUMNS idx for ORDINALITY,
doc_rowid PATH '$.rowid',
score NUMBER PATH '$.score',
vector_score NUMBER PATH '$.vector_score',
text_score NUMBER PATH '$.text_score',
vector_rank NUMBER PATH '$.vector_rank',
text_rank NUMBER PATH '$.text_rank',
chunk_text PATH '$.chunk_text',
chunk_id PATH '$.chunk_id',
paths PATH '$.paths'
) jt
ORDER by idx ASC
親トピック: DBMS_HYBRID_VECTOR