관련성을 높이기 위해 MySQL 전체 텍스트 검색에서 필드의 우선 순위를 어떻게 지정할 수 있습니까?

Patricia Arquette
풀어 주다: 2024-11-03 23:37:30
원래의
499명이 탐색했습니다.

How Can I Prioritize Fields in MySQL Fulltext Search for Enhanced Relevance?

관련성 향상을 위해 MySQL 전체 텍스트 검색에서 필드 우선순위 지정

"keywords"와 "content"라는 두 개의 열이 있는 상황이 발생한다고 가정해 보겠습니다. ," 테이블과 두 열에 걸쳐 있는 기본 전체 텍스트 인덱스입니다. 그러나 "키워드" 열에 특정 용어가 포함된 행이 "콘텐츠" 열에 포함된 검색어보다 관련성이 더 높은 행을 제공하려고 합니다.

"일치 대상"을 사용하는 맥락 내에서 이 작업을 수행하려면 구문을 사용하면 다각적인 접근 방식을 구현할 수 있습니다.

  1. 여러 전체 텍스트 색인 생성:
    3개의 전체 텍스트 색인 설정:

    • "키워드" 열에만 하나
    • "콘텐츠" 열에만 하나
    • "키워드" 및 "콘텐츠" 열 모두에 하나
  2. 가중 관련성 계산 활용:
    쿼리에서 "키워드"와 "콘텐츠" 일치 항목 모두에 대한 관련성 점수를 별도로 검색합니다. 그런 다음 가중치 추가를 사용하여 이러한 점수를 결합하고 "키워드" 관련성에 더 높은 가중치를 부여합니다.

    SELECT id, keyword, content,
    MATCH (keyword) AGAINST ('watermelon') AS rel1,
    MATCH (content) AGAINST ('watermelon') AS rel2
    FROM table
    WHERE MATCH (keyword,content) AGAINST ('watermelon')
    ORDER BY (rel1*weight_factor)+(rel2) DESC
    로그인 후 복사
  3. 결합 지수를 사용한 재현율 제어:
    위의 계산에 따라 관련성이 결정되므로 검색용 인덱스 사용과 관련성을 구분하는 것이 중요합니다. "키워드"와 "콘텐츠" 모두에 대한 인덱스를 활용하여 재현율을 제어하고 관련 행이 검색 결과에 반환되도록 합니다.

이 접근 방식을 사용하면 "키워드" 열의 중요성에 우선순위를 지정할 수 있습니다. MySQL 전체 텍스트 검색 쿼리에서 문서 관련성을 결정합니다. 계산의 가중치 요소를 사용하면 원하는 열에서 일치하는 용어의 우선 순위를 미세 조정할 수 있습니다.

위 내용은 관련성을 높이기 위해 MySQL 전체 텍스트 검색에서 필드의 우선 순위를 어떻게 지정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿