반응형
여러 열에 FULLTEXT 인덱스를 만드는 방법은?
다음 쿼리를 실행하고 있습니다.tbl_query
select * from tbl_query q where match(q.query_desc,q.query_desc_details) against ('test1' WITH QUERY EXPANSION);
오류를 내고 있습니다.
16:46:22 select * from tbl_query q where match(q.query_desc,q.query_desc_details) against ('test1' WITH QUERY EXPANSION) LIMIT 0, 1000 Error Code: 1191. Can't find FULLTEXT index matching the column list 0.078 sec
내 테이블은 이렇습니다.
CREATE TABLE `tbl_query` (
`query_id` int(11) NOT NULL AUTO_INCREMENT,
`query_desc` text NOT NULL,
`query_desc_details` text,
PRIMARY KEY (`query_id`),
KEY `QUERY_DESC` (`query_desc`(333)) USING BTREE,
KEY `QUERY_DESC_DETAILS` (`query_desc_details`(333)) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
데이터베이스에서 전체 텍스트 단어 경계는 다음과 같습니다.
ft_max_word_len= 84
ft_min_word_len= 4
저는 두 개의 칼럼에 대해 검색하고 있습니다.
그래서 제 질문은 표에 대한 전체 텍스트 색인을 만드는 방법입니다.
전체 텍스트 포함2
이렇게 작성하는 열
ALTER TABLE tbl_query
ADD FULLTEXT INDEX `FullText`
(`query_desc` ASC, `query_desc_details` ASC);
ALTER TABLE `TableName`
ADD FULLTEXT INDEX `IndexName` (`ColumnName`);
인덱스가 만들어집니다.이 정도면 될 겁니다.
ALTER TABLE `TableName` ADD FULLTEXT index_name(column1, column2);
색인 추가
ALTER TABLE_name ADD FULLTEXT 인덱스_name(열1, 열2);
검색 결과를 가져오려면 다음과 같이 하십시오.
SELECT * FROM table_name WHERE MATCH(열1,열2)반대(자연어 모드의 '검색 문자열');
색인을 삭제하려면
ALTER TABLE_nameDROP INDEX Index_name;
언급URL : https://stackoverflow.com/questions/21551560/how-to-create-fulltext-index-on-multiple-columns
반응형
'code' 카테고리의 다른 글
오라클 datetime 필드 색인 (0) | 2023.09.20 |
---|---|
다중 스레드 환경에서 Spring Web Client를 사용하는 올바른 방법 (0) | 2023.09.20 |
활성 레코드:: 접속TimeoutError: 5.000초(대기 5.000초) 내에 데이터베이스 연결을 가져올 수 없습니다. (0) | 2023.09.20 |
Oracle INSERT를 하나의 쿼리로 두 개의 테이블에 입력 (0) | 2023.09.20 |
printf("%x",1)가 정의되지 않은 동작을 호출합니까? (0) | 2023.09.15 |