我有一列用逗號分隔的數字,如'2323,23323,23323'。該表有2000萬條記錄,大約需要37秒才能根據類似下面的關鍵字返回結果。如何使用Oracle文本索引逗號分隔的文本列
SELECT count(*) from testtable WHERE node_sequence like '%324%';
我試圖通過使用Oracle文本通過創建以下索引
CREATE INDEX node_sequence_index ON testtable(node_sequence) INDEXTYPE IS ctxsys.context;
exec ctx_ddl.sync_index('node_sequence_index');
但下面的查詢來提高查詢的時間只用言語工作:
SELECT count(*) from testtable WHERE CONTAINS(node_sequence, '324') > 0;
通過查看文檔,索引將通過文字標記(分隔空間)。有沒有辦法用逗號來標記?我一直沒能找到一個樣本,可以做到這一點。請幫助我瞭解我在這裏錯過了什麼?
你可以在node_sequence上添加一個字符串替換函數來擺脫逗號。 –
是的,但我想查看這是否可能,而不需要替換逗號。替換會引起參考位置的很多變化 – Chandan