全部產品
Search
文件中心

OpenSearch:OpenSearch-高效能檢索版表結構

更新時間:Jul 13, 2024

應用結構

資料推送到OpenSearch後會先儲存到離線資料表中,在此階段,為了方便使用者推送資料,資料表允許使用者根據實際業務情境定義多個欄位(需要指定關聯欄位),並提供了資料處理的外掛程式。資料處理完畢後會構建為一張索引表,這種索引表主要定義搜尋屬性,供引擎構建索引及查詢使用。

資料表欄位

資料表主要為資料匯入時使用,不同的資料處理外掛程式對類型有不同的要求。具體欄位取值範圍,請參見使用限制-欄位相關部分說明。超過取值範圍將溢出或者截斷,請務必保證選擇類型正確。

類型

說明

INT

int64整型

INT_ARRAY

int64整型數組

FLOAT

浮點型

FLOAT_ARRAY

浮點型數組

DOUBLE

浮點型

DOUBLE_ARRAY

浮點型數組

LITERAL

字串常量,僅支援精確匹配

LITERAL_ARRAY

字串常量數組,單個元素僅支援精確匹配

SHORT_TEXT

短文本,長度在100位元組內,支援若干分詞方式

TEXT

長文本,支援若干分詞方式

TIMESTAMP

uint64整型,時間戳記資料

GEO_POINT

字串常量,經緯度欄位,格式為:”經度 緯度”

保留欄位說明:

  • [‘service_id’, ‘ops_app_name’, ‘inter_timestamp’, ‘index_name’, ‘pk’, ‘ops_version’, ‘ha_reserved_timestamp’,‘summary’] 這些欄位名稱為保留欄位,暫時無法作為欄位名稱配置。

ARRAY數群組類型說明:

  • 如果應用欄位建立為ARRAY類型,資料來源欄位對應時,該欄位可以關聯varchar/string(字串類型),並使用資料來源外掛程式說明解析資料來源欄位。

  • 若該ARRAY類型欄位使用API/SDK推送,則請按數群組類型推送,不要按string推送。如:String[] literal_array = {“阿里雲”,”OpenSearch”};

時間戳記欄位說明:

  • INT和TIMESTAMP類型可以映射資料來源欄位中的datetime/timestamp欄位,會自動將其轉化為毫秒數。搜尋時可以通過Range範圍查詢,按時間區間過濾召回。

支援的資料來源欄位類型

資料來源

支援的欄位類型

RDS

TINYINT,SMALLINT,INTEGER,BIGINT,FLOAT,REAL,DOUBLE,NUMERIC,DECIMAL,TIME,DATE,TIMESTAMP,VARCHAR

PolarDB

TINYINT,SMALLINT,INTEGER,BIGINT,FLOAT,REAL,DOUBLE,NUMERIC,DECIMAL,TIME,DATE,TIMESTAMP,VARCHAR

MaxCompute(原odps)

BIGINT,DOUBLE,BOOLEAN,DATETIME,STRING,DECIMAL,MAP,ARRAY,TINYINT,SMALLINT,INT,FLOAT,CHAR,VARCHAR,DATE,TIMESTAMP,BINARY,INTERVAL_DAY_TIME,INTERVAL_YEAR_MONTH,STRUCT

OpenSearch表的欄位類型與資料庫表的欄位類型的對應關係

OpenSearch表

RDS表

PolarDB表

MaxCompute(原odps)表

INT

BIGINT,TINYINT,SMALLINT,INTEGER

BIGINT,TINYINT,SMALLINT,INTEGER

BIGINT,TINYINT,SMALLINT,INT

INT_ARRAY

VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換

VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換

VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換

FLOAT

FLOAT,NUMERIC,DECIMAL

FLOAT,NUMERIC,DECIMAL

FLOAT,DECIMAL

FLOAT_ARRAY

VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換

VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換

VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換

DOUBLE

DOUBLE,NUMERIC,DECIMAL

DOUBLE,NUMERIC,DECIMAL

DOUBLE,DECIMAL

DOUBLE_ARRAY

VARCHAR等字串類型,需用資料來源外掛程式MultiValueSpliter轉換

VARCHAR等字串類型,需用資料來源外掛程式MultiValueSpliter轉換

VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換

LITERAL

VARCHAR等字串類型

VARCHAR等字串類型

VARCHAR、STRING等字串類型

LITERAL_ARRAY

VARCHAR等字串類型,需用資料來源外掛程式MultiValueSpliter轉換

VARCHAR等字串類型,需用資料來源外掛程式MultiValueSpliter轉換

VARCHAR、STRING等字串類型,需用資料來源外掛程式MultiValueSpliter轉換

SHORT_TEXT

VARCHAR等字串類型

VARCHAR等字串類型

VARCHAR、STRING等字串類型

TEXT

VARCHAR等字串類型

VARCHAR等字串類型

VARCHAR、STRING等字串類型

TIMESTAMP

datetime/timestamp類型

datetime/timestamp類型

datetime/timestamp類型

GEO_POINT

VARCHAR等字串類型

VARCHAR等字串類型

VARCHAR、STRING等字串類型,格式為: lon lat。lon表示經度,lat表示緯度,都為double類型,二者之間用空格分隔。lon的範圍: [-180, 180], lat範圍[-90, 90]。

注意

  • 資料來源欄位資料類型如果是FLOAT或DOUBLE類型,建議改為DECIMAL類型,否則可能會出現精度不正確的情況。

建立應用結構方式介紹

OpenSearch提供如下4中方式建立應用結構(OpenSearch的表結構):

  1. 通過資料來源的方式建立(RDS資料來源配置MaxCompute(原ODPS)資料來源配置PolarDB資料來源配置);

  2. 手動建立;

  3. 通過模板建立(應用間遷移);

  4. 上傳文檔的方式建立應用結構