0
오라클 APEX 애플리케이션을 통해 전체 텍스트를 검색 할 수 있도록 3 열의 테이블이 있어야합니다. 세 열 모두에 대한 색인을 생성하여 모두 검색 할 수 있습니까?컨텍스트 전체 텍스트 검색에 대해 동일한 테이블의 여러 열을 인덱싱합니까?
현재 나는 하나의 열 (STOP_NAME)에 상황에 맞는 색인이 있습니다
DECLARE
l_query VARCHAR2(4000);
BEGIN
l_query:=
'select
"BUS_STOP_ID",
"STOP_NAME",
"DESC_NOTES",
"BUS_NUMBERS",
"LOCATION"
from "BUS_STOPS" ';
IF v('P2_REPORT_SEARCH') IS NOT NULL THEN
l_query := l_query||' '||'
where
(
CONTAINS(STOP_NAME, ''$'|| v('P2_REPORT_SEARCH') ||''') > 0
)
';
END IF;
RETURN l_query;
END;
하지만 어떻게 내가 텍스트 검색에 세 개의 열 (stop_name, desc_notes, bus_numbers)를 사용하여 인덱스를 만들 수 있습니까? 나는 3 열을 사용하여 만드는 표준 인덱스를 사용하여 시도했지만 작동하지 않았다 :
BEGIN
ctx_ddl.create_preference('my_multi_idx', 'MULTI_COLUMN_DATASTORE');
ctx_ddl.set_attribute('my_multi_idx', 'COLUMNS', 'stop_name, desc_notes, bus_numbers');
END;
이전에 설정 한 환경 설정을 사용하여 인덱스 자체를 만들어 이어 :
CREATE INDEX bus_stops_ctx_idx
ON bus_stops (stop_name, bus_numbers, desc_notes)
INDEXTYPE IS ctxsys.context;
SQL 주입 경고! 이것을 대신 사용해보십시오 :'CONTAINS (STOP_NAME, ''$ ''|| : P2_REPORT_SEARCH)> 0' –