source

MySQL 일치 관련성 점수가 "DOUBLE 값이 범위를 벗어났습니다" 오류를 발생시킵니다.

manycodes 2023. 1. 29. 20:19
반응형

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

반응형