Loading...
MySQL 9.5 Reference Manual 9.5의 14.9.5 Full-Text Restrictions의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
full-text 검색은 파티션 테이블에서는 지원되지 않습니다. Section 26.6, “Restrictions and Limitations on Partitioning”을 참조하십시오.
full-text 검색은 대부분의 멀티바이트 문자 집합에서 사용할 수 있습니다. 예외적으로 Unicode의 경우
utf8mb3 또는 utf8mb4
문자 집합은 사용할 수 있지만
ucs2 문자 집합은 사용할 수 없습니다.
ucs2 컬럼에 대한
FULLTEXT 인덱스는 사용할 수 없지만,
그러한 인덱스가 없는
ucs2 컬럼에 대해
IN BOOLEAN MODE 검색을 수행할 수는 있습니다.
utf8mb3에 대한 언급은
utf8mb4에도 적용되며,
ucs2에 대한 언급은
utf16, utf16le,
utf32에도 적용됩니다.
문자 기반 n그램 full-text 파서가 제공되며, 이는 Chinese, Japanese, Korean (CJK)를 지원합니다. 또한 Japanese를 지원하는 단어 기반 MeCab 파서 플러그인이
InnoDB 및
MyISAM 테이블과 함께 사용할 수 있도록 제공됩니다.
단일 테이블 내에서 여러 문자 집합의 사용은 지원되지만,
FULLTEXT 인덱스의 모든 컬럼은 동일한 문자 집합과 콜레이션을 사용해야 합니다.
MATCH() 컬럼 목록은, 이 MATCH()가
MyISAM 테이블에서
IN BOOLEAN MODE인 경우를 제외하고, 테이블에 대한 어떤
FULLTEXT 인덱스 정의의 컬럼 목록과 정확히 일치해야 합니다.
MyISAM 테이블의 경우 boolean 모드 검색은 인덱스가 없는 컬럼에 대해서도 수행할 수 있지만, 느릴 가능성이 큽니다.
AGAINST()의 인수는 쿼리 평가 동안 상수인 문자열 값이어야 합니다. 이는 예를 들어 각 행마다 값이 달라질 수 있는 테이블 컬럼은 사용할 수 없음을 의미합니다.
MATCH()의 인수는 롤업 컬럼을 사용할 수 없습니다.
인덱스 힌트는 FULLTEXT
검색에 대해서는 non-FULLTEXT 검색에 비해 더 제한됩니다.
Section 10.9.4, “Index Hints”를 참조하십시오.
InnoDB의 경우, full-text 인덱스가 있는 컬럼을 포함하는 모든 DML 연산
(INSERT,
UPDATE,
DELETE)은 트랜잭션 커밋 시점에 처리됩니다. 예를 들어 INSERT
연산의 경우, 삽입된 문자열은 토큰화되어 개별 단어로 분해됩니다. 그런 다음 개별 단어는 트랜잭션이 커밋될 때 full-text 인덱스 테이블에 추가됩니다. 그 결과, full-text 검색은 커밋된 데이터만 반환합니다.
'%' 문자는 full-text 검색에서 지원되는 와일드카드 문자가 아닙니다.
14.9.4 Full-Text Stopwords
14.9.6 Fine-Tuning MySQL Full-Text Search