全部產品
Search
文件中心

OpenSearch:動態參數

更新時間:Jul 13, 2024

描述

動態參數類似的資料庫中的PrepareStatement。使用者可以在SQL中設定placeholder(?表示),同時傳遞placeholder對應的值。引擎內部會自動替換。

動態參數主要用於提高Cache命中率,對於查詢模式固定的情境效能提升明顯。

注意動態參數只能替換值,不支援關鍵字或欄位替換。

樣本

樣本1

SELECT i1, cast(? as bigint) FROM t1 WHERE (i2 > 5 AND d3 < 10.1) OR s5 = ?

為了替換掉SQL中的動態參數(也就是"?"),具體如下:

 dynamic_params:[[10, "str5"]]

樣本2

SELECT
    price,
    title,
    compute(
        longitude,
        latitude,
        city_id,
        CAST(? AS double),
        CAST(? AS double),
        CAST(1 AS bigint)
    ) AS distance
FROM
    store,
    unnest(store.sub_table)
WHERE
    MATCHINDEX('shop', ?)
    AND QUERY(name, ?) 
dynamic_params:[[119.98844256998, 
                36.776817017143, 
                "excellect", 
                "水果 OR 西瓜"]]