MariaDB 10의 FULLTEXT 색인
MariaDB 문서에서는 InnoDB용 FULLTEXT 인덱스가 버전 10.0.5부터 지원되고 있습니다(https://mariadb.com/kb/en/mariadb/documentation/optimization-and-tuning/optimization-and-indexes/full-text-indexes/fulltext-index-overview/)
최근에 MariaDB 10.0.13을 설치하고 다음과 같이 MyISAM 테이블을 InnoDB로 변환하려고 했습니다.
MariaDB [(test)]> ALTER TABLE field_values ENGINE=InnoDB;
그러나 다음과 같은 오류가 발생했습니다.
ERROR 1214 (HY000): The used table type doesn't support FULLTEXT indexes
여기 있습니다.SHOW INDEXES
테이블에 대한 쿼리:
MariaDB [(test)]> show indexes in field_values;
+--------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+--------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| field_values | 0 | PRIMARY | 1 | productid | A | NULL | NULL | NULL | | BTREE | | |
| field_values | 0 | PRIMARY | 2 | fieldid | A | 0 | NULL | NULL | | BTREE | | |
| field_values | 1 | value | 1 | value | NULL | NULL | NULL | NULL | | FULLTEXT | | |
+--------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
3 rows in set (0.00 sec)
MariaDB 설명서에는 CHAR, VARCHAR 또는 TEXT 열에 대해서만 생성할 수 있는 인덱스가 나와 있습니다.자, 여기 있습니다DESCRIBE TABLE
테이블용:
MariaDB [(test)]> describe field_values ;
+-----------+-----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-----------+------+-----+---------+-------+
| productid | int(11) | NO | PRI | 0 | |
| fieldid | int(11) | NO | PRI | 0 | |
| value | char(255) | NO | MUL | | |
+-----------+-----------+------+-----+---------+-------+
3 rows in set (0.00 sec)
해당 필드(value
)가 지원되고 있습니다.CHAR
.
마지막으로 My MariaDB 버전을 소개합니다.
mysql Ver 15.1 Distrib 10.0.13-MariaDB, for Linux (x86_64) using readline 5.1
따라서 적어도 MariaDB 문서에 따르면 이 작업은 지원되어야 하지만 오류가 발생하고 있습니다.MariaDB 10.0.13에서 FULLTEXT 인덱스를 활성화하려면 다른 작업을 수행해야 합니까?
그래서 MariaDB를 10.0.14로 업그레이드한 후 Fulltext Index를 수동으로 추가했는데 완벽하게 작동했습니다.MyIsam Index에서 XtraDB/InnoDB Index로의 변환 오류가 있을 수 있습니다.
하지만 제대로 작동했어야 하는 것은 다음과 같습니다.
- MyIsam에서 인덱스 삭제
- MariaDB를 10.x로 업그레이드
- MyIsam을 InnoDB로 전환
- 수동으로 인덱스 추가
다음과 같이 MariaDB에 전체 텍스트 색인을 추가할 수 있습니다.
ALTER TABLE your_table ADD FULLTEXT INDEX `ft_column_name` (column_name);
그런 다음 예상대로 쿼리를 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/25416423/fulltext-indexes-in-mariadb-10
'programing' 카테고리의 다른 글
entity-manager가 있는 경우 session 개체를 가져오려면 어떻게 해야 합니까? (0) | 2022.10.26 |
---|---|
.so 파일에 기호를 나열하려면 어떻게 해야 합니까? (0) | 2022.10.26 |
MySQL 데이터베이스에 있는 테이블의 스키마를 표시하려면 어떻게 해야 합니까? (0) | 2022.10.26 |
잘못된 매직 넘버 오류는 무엇입니까? (0) | 2022.10.26 |
Class.newInstance()가 "evil"인 이유는 무엇입니까? (0) | 2022.10.26 |