>  기사  >  데이터 베이스  >  특정 필드에 대한 MySQL 전체 텍스트 검색의 관련성을 높이는 방법은 무엇입니까?

특정 필드에 대한 MySQL 전체 텍스트 검색의 관련성을 높이는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-07 03:02:03472검색

How to Boost Relevance in MySQL Fulltext Search for Specific Fields?

특정 필드에 대한 MySQL 전체 텍스트 검색 관련성을 향상시키는 방법

키워드와 콘텐츠라는 두 개의 열이 있는 데이터베이스가 있다고 가정합니다. 두 열을 모두 포함하는 전체 텍스트 인덱스를 만들었습니다. 하지만 콘텐츠 열에 동일한 단어가 있는 행보다 키워드 열에 특정 단어가 있는 행의 우선순위를 지정하려고 합니다.

해결책:

3개의 전체 텍스트 인덱스를 만듭니다.

  1. 키워드 열에만 색인
  2. 콘텐츠 열에만 색인
  3. 키워드 및 콘텐츠 열에 모두 색인

그런 다음 수정합니다. 쿼리는 다음과 같습니다.

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*1.5)+(rel2) DESC

설명:

  • rel1 및 rel2는 각각 키워드 및 콘텐츠 열에서 쿼리의 관련성을 계산합니다.
  • rel1에 1.5를 곱하면 키워드에 더 높은 가중치를 부여합니다.
  • WHERE 절은 여전히 ​​결과가 반환되도록 키워드와 콘텐츠에 대한 복합 인덱스를 사용합니다.
  • 이 기술은 재현율(반환되는 결과) 및 관련성(일치의 우선순위)을 제어하여 특정 필드에 더 많은 중요성을 부여할 수 있습니다.

위 내용은 특정 필드에 대한 MySQL 전체 텍스트 검색의 관련성을 높이는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.