MySQL 일치 관련성 점수가 "DOUBLE 값이 범위를 벗어났습니다" 오류를 발생시킵니다.
Windows XAMPP 환경에서 MySQL(MariaDB) 전체 텍스트 검색을 만들었습니다.모든 것이 잘 작동한다.그러나 라이브 서버(MariaDB도 사용)에 배치하면 동일한 데이터를 사용하여 1690 Double value is out of range 오류가 발생합니다.
MariaDB 설정 어딘가에 문제가 있는 것 같습니다.이게 어떤 설정인지 알 수가 없어요
다음은 간단한 질의입니다.
SELECT id, (MATCH (name) AGAINST ('"exactSearchPhrase"' IN BOOLEAN MODE)*3 + MATCH (name) AGAINST ('single*, Words*, Search*, Phrase*' IN BOOLEAN MODE)) as relevance, name FROM tableName WHERE MATCH(name) AGAINST('search Phrase' IN BOOLEAN MODE) ORDER BY relevance DESC
그리고 이것이 내가 받는 오류입니다.
숫자 값이 범위를 벗어남: 1690 DUBLE 값이 '(일치)의 범위를 벗어남
name
('exact SearchPhrase' in boolean)* 3
표준 Xampp 환경에서의 설정과 다를 수 있는 이 동작의 원인이 되는 설정을 알고 있는 사람이 있습니까?
시행착오 후 편집:일치 결과에 의한 모든 종류의 조작이 이 에러의 원인이 됩니다.이것은 나를 더욱 혼란스럽게 한다.
오류 없음: SELECT id, (MATCH (name) AGAINST ('"exactSearchPhrase"' IN BOOLEAN MODE)) as relevance, name FROM tableName WHERE MATCH(name) AGAINST('search Phrase' IN BOOLEAN MODE) ORDER BY relevance DESC
오류: SELECT id, (MATCH (name) AGAINST ('"exactSearchPhrase"' IN BOOLEAN MODE)+0) as relevance, name FROM tableName WHERE MATCH(name) AGAINST('search Phrase' IN BOOLEAN MODE) ORDER BY relevance DESC
편집: 테이블 전체를 다시 작성하게 되었습니다.전체 텍스트 색인 자체에 문제가 있는 것 같습니다.
해라ANALYZE TABLE table_name
.그것은 나에게 효과가 있었다.
최근 MySQL 업그레이드 후 Digital Ocean Managed Database에서 동일한 문제가 발생했습니다. 이 문제는 복제본으로 전환하는 것과 관련이 있다고 생각합니다.관련 점수를 다음을 포함하여 임의의 숫자로 곱했을 때 동일한 오류 메시지 "DOUBLE value is out of range"가 표시되었습니다.* 1
곱셈을 하지 않고 실행했더니 쿼리가 성공했습니다.
MySQL 문서의 예를 데이터의 유사한 검색과 비교한 결과 관련성 점수가 올바르지 않은 것 같습니다.그래서 FULLTEXT 색인에 뭔가 문제가 있다고 생각하고ANALYZE TABLE
그 후, 올바르게 동작했습니다.
문제의 정확한 원인은 알 수 없지만, 내 경우와 OP의 경우 서버 전환의 유사성에 주목하고 있습니다.
언급URL : https://stackoverflow.com/questions/64397678/mysql-match-relevance-score-causes-double-value-is-out-of-range-error
'source' 카테고리의 다른 글
PHP를 사용하여 문자열에서 마지막 쉼표를 제거하려면 어떻게 해야 합니까? (0) | 2023.01.29 |
---|---|
사설 컨스트럭터에 테스트 적용 범위를 추가하려면 어떻게 해야 합니까? (0) | 2023.01.29 |
커스텀 .php 파일에 WordPress 함수를 포함하려면 어떻게 해야 합니까? (0) | 2023.01.29 |
JavaScript에서 연관지을 수 있는 어레이/해시를 실행하는 방법 (0) | 2023.01.29 |
null 인수에 대한 메서드 오버로드 (0) | 2023.01.29 |