Oracle DB에 문제가 있습니다. 도메인 색인은 구체화 된보기에서 CONTAINS()를 사용하여 검색 한 후 0 행을 반환합니다. 구체화 된 뷰가 데이터로 채워져 있고 도메인 인덱스 동기화를 위해 프로 시저 ctx_ddl.sync_index()를 사용했습니다. 좋은 작품은 무엇구체화 된보기의 도메인 색인이 0 행을 반환합니다.
:에 의해
- TABLE CREATE
- 데이터 삽입
- DOMAIN 인덱스를 만들
- SYNC 도메인 INDEX
- FIND 행에 포함 된 - RETURN 행
무엇 작동하지 않습니다 : TABLE CREATE
- 데이터 삽입
- 보기 MATERIALIZED CREATE
- REFRESH는 MATERIALIZED VIEW
- SYNC DOMAIN 지수가보기 구체화 DOMAIN INDEX IN이보기 MATERIALIZED CREATE
- 물질 대사가 포함 된 내용 찾기 - 반올림 0 초 (LIKE % TERM % WORKS)
왜 구체화 된보기없이 모든 것이 잘 작동합니까? 가 여기 내 쿼리입니다 (당신은 복사 - 붙여 넣기와 오라클 DB에 그것을 시도 할 수 있습니다) :
--create table CREATE TABLE "PCOUNTERPARTY" ("ID_COUNTERPARTY" NUMBER(10,0), "TXT_SEARCH_FULL_NAME" NVARCHAR2(260), CONSTRAINT "PCOUNTERPARTY_PK" PRIMARY KEY ("ID_COUNTERPARTY"));
--INSERT DATA. Insert into PCOUNTERPARTY (ID_COUNTERPARTY,TXT_SEARCH_FULL_NAME) values (1184,'MARTINKO3');
--create materialized view CREATE MATERIALIZED VIEW m_pcounterparty AS SELECT c.ID_COUNTERPARTY, CAST(c.TXT_SEARCH_FULL_NAME AS varchar2(260 CHAR)) as txt_search_full_name_all FROM PCOUNTERPARTY c;
--create domain index create index IDXM_1_pcounterparty on m_pcounterparty(TXT_SEARCH_FULL_NAME_ALL) indextype is ctxsys.context PARAMETERS ('SYNC (ON COMMIT)');
--refresh of materialized view EXECUTE DBMS_MVIEW.REFRESH('M_PCOUNTERPARTY'); --refresh of index exec ctx_ddl.sync_index('IDXM_1_pcounterparty');
--search in materialized view SELECT TXT_SEARCH_FULL_NAME_ALL from M_PCOUNTERPARTY c WHERE CONTAINS(c.TXT_SEARCH_FULL_NAME_ALL, 'martin', 1) > 0; --return ZERO and THIS IS PROBLEM --c.TXT_SEARCH_FULL_NAME_ALL LIKE '%MARTIN%';-- return rows but we want search thru CONTAINS