2009-06-01 5 views
1

SQL Server 2005 Express를 사용하여 텍스트 단락과 관련된 상위 5 개 튜플을 찾고 싶습니다. 전체 텍스트 인덱싱 및 CONTAINSTABLE을 사용하여 정확한 구문을 포함하는 행을 찾을 수는 있지만 정확한 단락 자체가 아니라 단락의 단어와 가장 가까운 일치 항목을 반환하려면 어떻게해야합니까?단락을 기반으로 SQl 서버 행을 찾는 방법 - 특히 단락이 아닌 정확한 단락을 찾는 방법

내가 생각할 수있는 유일한 방법은 CONTAINSTABLE 쿼리를 분할하여 각 공백 문자에 '또는'를 삽입하고 다음 줄에 따라 쿼리를 생성하는 것입니다. 그러나 성능 (및 중지 단어)에 대해 우려하고 있습니다.

SELECT id, FT.rank, description 
FROM SearchTable 
    INNER JOIN CONTAINSTABLE (SearchTable, *, 
      '"This" OR "is" OR "my" OR "paragraph"') AS FT 
      ON SearchTable.id = FT.[key] 
ORDER BY Rank DESC 

나는이 문제에 대한 표준 용액 거기에 기대 - 사람이 그것이 무엇인지 알고 있나요?

+0

,하지만 당신은있는 그대로 모든 정말 자주 단어를 포함하는 것을 그들이 방법 당신이 그 일을 생각하고 하나의 문제이며, , 내, 등. – DForck42

+0

예, 그건 내가 '멈추는 말'을 의미하는거야. –

답변

2

시도하고있는 것을 수행해야하는 FREETEXT 및 FREETEXTTABLE을 사용해 보셨습니까?

http://msdn.microsoft.com/en-us/library/cc879300.aspx

아니라 내가 그것을 할 수있는 더 좋은 방법을 알고하지 않습니다
+1

예, 이것이 정확히 당신이 원하는 것입니다. FREETEXT/FREETEXTTABLE은 검색 텍스트를 자동으로 단어로 나눕니다. 검색 결과의 일치 정도에 따라 순위가 결정됩니다. 정확한 구문 순위, 모든 단어 등이 표시됩니다. – GalacticCowboy

+0

아 - 이것이 FREETEXTTABLE과 CONTAINSTABLE의 차이점입니다! 머리 - 때리는 순간 : 0) 많은 감사합니다. –

관련 문제