使用介紹
支援的欄位類型:TINYINT,SMALLINT,INTEGER,BIGINT,FLOAT,REAL,DOUBLE,NUMERIC,DECIMAL,TIME,TIMESTAMP
支援的比較符:<、>、<=、>=、=、!= 、<> 【注意:=、!= 、<>數實值型別和字元類型均適用】
支援的值:NULL 與非NULL
情境舉例
1.字元類型的過濾:field_string='a'
或field_string!='b'
注,寫單引號、雙引號或者不寫引號均可;以下舉例值為空白和null的寫法:
field = ''
field != ''
field <> ''
field = 'null'
field = 'NULL'
field != 'null'
field != 'NULL'
field <> 'null'
field <> 'NULL'
2.NULL值過濾:注,數實值型別和字元類型均適用
#以下寫法均正確
field = null
field = NULL
field != null
field != NULL
field <> null
field <> NULL
3.date或datetime欄位類型條件過濾:createtime>'2021-02-05 00:00:00'
4.多條件過濾:status=1,literal_id='abcd',createtime>'2021-02-05 00:00:00'
注意事項
目前資料來源過濾功能可用在RDS、PolarDB資料來源中;
資料來源過濾條件中的欄位,需填寫為資料庫表欄位,而不是OpenSearch應用結構中的欄位名;
資料來源過濾條件生效後,只能拉取符合該條件的記錄(全量和增量資料均生效)。例:配置了status=1的過濾條件後,rds中某一條原先status=1的文檔改為了status=2,那麼此時這條文檔會在OpenSearch中被刪除;
目前串連符只支援AND,暫不支援OR;AND文法由英文逗號代替;
##sql語句where內容為:
where status=1 and type=2
#在OpenSearch資料來源過濾處配置
where status=1 and type=2 #錯誤寫法
status=1 and type=2 #錯誤寫法
status=1,type=2 #正確寫法
關於null判斷,is null 和 is not null 均為錯誤寫法,正確用法請參考情境舉例中關於null值支援;
如果需要根據db表中的date或datetime欄位進行過濾,假設db欄位名為createtime,則資料來源過濾條件中的時間格式必須需為:
createtime>'2018-03-01 00:00:00'
暫時不支援函數和運算式判斷這類複雜操作,例:in(type,1,2,3) 或 length(title)>10
暫時不支援like,not like 例:like '%aaa' 或 not like '%bbb'
暫時不支援恒等式,例:1=1。