집 >데이터 베이스 >MySQL 튜토리얼 >특정 열의 우선순위를 지정하여 MySQL 전체 텍스트 검색 관련성을 어떻게 최적화할 수 있습니까?
관련성과 열 우선순위를 사용한 전체 텍스트 검색을 위한 MySQL 쿼리 최적화
MySQL의 MATCH( ) 및 AGAINST() 함수를 사용하는 경우 사용자는 특정 열의 우선순위를 지정하면서 관련성에 따라 결과를 정렬해야 하는 경우가 종종 있습니다. 단어 수를 기준으로 관련성을 계산하는 것은 간단하지만 열 관련성의 우선순위를 정하는 것은 어려울 수 있습니다.
이 문제를 해결하기 위해 열별 관련성 측정을 통합하는 수정된 쿼리를 사용할 수 있습니다. 추가 관련성 열을 생성하는 대신 다음 쿼리는 새로운 가중치 요소를 도입합니다.
SELECT pages.*, MATCH (head, body) AGAINST ('some words') AS relevance, MATCH (head) AGAINST ('some words') * 2 AS title_relevance FROM pages WHERE MATCH (head, body) AGAINST ('some words') ORDER BY title_relevance DESC, relevance DESC -- Alternatively: ORDER BY 0.5 * title_relevance + relevance DESC
이 수정된 쿼리에서는 헤드 열에 있는 단어의 관련성이 두 배가 되므로 관련성 열의 우선 순위가 효과적으로 지정됩니다. 계산. 또는 사용자 정의 가중치 승수를 적용하여 우선순위를 더욱 세밀하게 조정할 수 있습니다.
더 고급 우선순위 지정 및 가중치 옵션을 원할 경우 가중치 연산자 및 순위 알고리즘에 대한 광범위한 사용자 정의를 제공하는 Postgres와 같은 대체 데이터베이스 엔진을 살펴보세요. .
위 내용은 특정 열의 우선순위를 지정하여 MySQL 전체 텍스트 검색 관련성을 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!