code

여러 열에 FULLTEXT 인덱스를 만드는 방법은?

starcafe 2023. 9. 20. 20:36
반응형

여러 열에 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

반응형