여러 열 검색에서 "열 목록과 일치하는 FULLTEXT 인덱스를 찾을 수 없음" 문제 해결
MATCH...AGAINST 쿼리를 생성할 때 전체 텍스트 인덱스에 여러 열이 포함된 경우 인덱스의 열 순서가 MATCH 절에 나타나는 순서와 일치하는지 확인하는 것이 중요합니다. 발생한 오류 메시지에 따르면 전체 텍스트 인덱스 정의에 MATCH 절보다 더 많은 열이 포함되어 있는 것 같습니다.
언급하신 대로 테이블에는 여러 열에 정의된 전체 텍스트 인덱스가 포함되어 있습니다.
FULLTEXT KEY `name` (`name`,`breadcrumb`,`description`,`brand`,`price`,`year`,`km`,`usage`,`type`)
그러나 MATCH 절에는 다음 열만 포함됩니다.
MATCH(`brand`) AGAINST('Skoda');
인덱스의 열 수와 MATCH 절 사이의 불일치로 인해 오류가 발생합니다. 이 문제를 해결하려면 인덱스 정의나 MATCH 절을 조정하여 정렬되도록 해야 합니다.
권장되는 접근 방식은 검색에 사용하려는 열과 일치하도록 전체 텍스트 인덱스를 수정하는 것입니다. 이 경우 다음 쿼리를 실행하여 브랜드 열만 포함하는 새 전체 텍스트 인덱스를 추가할 수 있습니다.
ALTER TABLE products ADD FULLTEXT(brand);
적절한 인덱스를 추가한 후 MATCH 쿼리를 다시 실행하세요.
SELECT * FROM products WHERE MATCH(`brand`) AGAINST('Skoda');
이제 오류 메시지 없이 예상한 결과가 반환됩니다.
위 내용은 여러 열을 검색할 때 \'열 목록과 일치하는 FULLTEXT 인덱스를 찾을 수 없습니다\' 메시지가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!