2010-06-03 4 views
1

SQL Server 전체 텍스트 검색을 실험하고 있습니다.전체 텍스트 검색에서 예상 결과가 반환되지 않습니다.

CREATE TABLE [dbo].[Category](
[Id] [int] IDENTITY(1,1) NOT NULL, 
[CategoryName] [varchar](100) NOT NULL, 
) 

내 쿼리는 다음과 같습니다 :

나는 기본 키로 아이디와 간단한 분류 테이블이

SELECT * 
FROM 
FREETEXTTABLE (Category, CategoryName, 'music') AS F 
INNER JOIN Category C ON F.[Key] = C.Id 
ORDER BY F.Rank DESC 

이 그들에 word 음악과 나 여러 레코드를 반환하지만 않습니다 '뮤지컬'이라는 단어가 포함 된 레코드를 반환하지 않습니다.

검색되는 문자열이 그리 크지는 않지만 LIKE 연산자를 사용하면 해결할 수 있다고 말할 수 있습니다. 이 간단한 예제가 다른 테이블과 fileds를 포함하도록 확장 될 것이므로 전체 텍스트 검색을 사용하고 싶습니다. 당신이 접두사를 일치 시키려면

+0

Dup는 : http://stackoverflow.com/questions/2716748/mysql- full-text-with-partial-words –

+0

주어진 링크는 MySQL 데이터베이스를 사용하는 전체 텍스트 검색에 관한 것입니다. 내 질문은 SQL Server 데이터베이스에 관한 것입니다. – Puneet

답변

1

, 당신은 CONTAINSTABLE 대신 FREETEXTTABLE의 사용 및 검색어에 와일드 카드를 포함 할 수있다 : '음악 *'를

+0

는 귀하의 제안에 따라, 나는 F.Rank에 의해 CONTAINSTABLE (종류, 범주, '음악 *') F INNER는 F. [키] ON 카테고리 C를 가입 AS = C.Id 주문이 쿼리 SELECT * 시도 DESC 동일한 결과를 제공합니다. 그냥 순위가 다릅니다 – Puneet

+0

구문에 나쁘다. ''음악으로 사용해보십시오. ''(바깥쪽에 큰 따옴표가 붙어 있습니다.) –

+0

그게 효과가 있어요. 많은 감사합니다! – Puneet

관련 문제