2014-01-29 1 views
0

FREETEXT을 SQL Server 2012의 where 절에 사용하고 검색어와의 관련성을 기준으로 결과를 주문할 수 있습니다.FREETEXT SQL Server 2012에서 순위별로 정렬하여 검색

FREETEXTTABLE을 사용할 수 있지만 SQL 문은 WHERE 절이 아닌 JOIN 일 것입니다. FREETEXT 문을 다른 논리 비교와 결합해야하므로 중요합니다.

원하는 상태는 다음과 같이 뭔가를 할 수있을 것입니다 :

SELECT Title 
FROM Document 
WHERE FREETEXT(Contents, Title, 'Approved Draft') OR (Status = 'Approved Draft') 
ORDER BY RANK? DESC 

답변

0

당신은 순위를 얻기 위해 FREETEXTTABLE를 사용해야합니다. 그래도 이것을 다른 논리 비교와 결합 할 수 있습니다.

다음은 쿼리 수정 방법의 예입니다. 로직이 Document.Status = 'Approved Draft' 일 때 0 등급이되므로이 경우에 원하는 것을 결정해야합니다.

SELECT Document.Title, qFreeText.RANK 
FROM Document 
LEFT JOIN FREETEXTTABLE(Contents, Title, 'Approved Draft') AS qFreeText 
    ON Document.ID = qFreeText.KEY 
WHERE (Document.Status = 'Approved Draft') OR (qFreeText.KEY IS NOT NULL) 
ORDER BY qFreeText.RANK DESC 
관련 문제