2013-12-18 2 views
0

필자는 동의어 사전 파일을 만들고 예제에 따라로드했습니다.전체 텍스트 검색 시소러스를 사용할 수 없습니다. 아마도 영국 영어 대신 미국 영어를로드 할 것입니다.

전 텍스트 색인화 된 테이블이있는 데이터베이스가 있습니다.

나는 그것이 꽤 거대 (4 분)을로드하는 데 오랜 시간이 걸렸습니다 the MSDN article here

에 따라 '영어'인 1033을 사용하여로드, 그래서 그것을로드 것을 알고있다.

영국 영어 용 파일이 있습니다.이 파일은 아마도 SQL이 사용하고있는 파일로, 왜 작동하지 않는지 설명 할 수 있습니다. 그러나 숫자는 차트에 표시되지 않으므로로드하는 방법을 모르겠습니다.

이것이 문제라고 가정하면 모두 멋쟁이입니다. 그러나 나는 또한 시소러스가 단순히 모든 자유 텍스트 질의에 대해 자동으로 작동 할 것이라고 제안하는 것을 발견 할 수 없다. 그래서 나는 자유 텍스트 카탈로그 (무언가를 볼 수는 없지만 결코 알지 못함)에 뭔가를해야하는지 모른다.

아이디어가 있으십니까?

추가 정보 : 내 tsenu.xml 파일에서

:

EXEC sys.sp_fulltext_load_thesaurus_file 1033; 
select * from Cats where contains(CatName , 'Jon', language 1033) 

'존'과 '존'에 대한 기록이있다하지만 결과는 다음과 같습니다

<XML ID="Microsoft Search Thesaurus"> 

    <thesaurus xmlns="x-schema:tsSchema.xml"> 
    <diacritics_sensitive>0</diacritics_sensitive> 
     <expansion> 
      <sub>John</sub> 
      <sub>Jon</sub> 
     </expansion> 
    </thesaurus> 

</XML> 

나는 다음이 실행 동의어 사전을 사용하지 않고 대안을 보여줍니다.

+0

당신이 서비스를 다시 시작처럼 뭔가를 할 수 있다고 생각

WHERE CONTAINS(CatName , '"Word1" AND "Word2"') 

같은 존 스미스를 검색하려면입니까 ??? 'SQL Server Config Manager'에서 서비스를 다시 시작하기 전에는 적용되지 않습니다 –

+0

그럴 필요는 없다고 어디에서 보지 못했습니다. 이는 필자가 제작 서버에 넣기를 원하기 때문에 피할 필요가있는 것이므로 클라이언트와 두통에 대해 수 주일 지나지 않아이를 다시 시작할 수 없습니다. – NibblyPig

+0

내 dev 컴퓨터를 재부팅했지만 변경하지 않았습니다. – NibblyPig

답변

1
입니다 동의어 사전 언젠가 조금 까다로울 수 있습니다 사용

WHERE CONTAINS(CatName , 'FORMSOF (THESAURUS, Jon)') 

을 시도

, 나는 오랫동안 팀에 대한 사용 FTS를를 havent e이지만 데이터를 포함하고있는 경우 실제 값이 아닌 THESAURUS 값만 반환하는 경우가 있습니다. 예를 들어 'Jon'이 'Jon'인 경우 'Jon'에 대한 시소러스 값을 찾고있는 경우 'Jon'을 반환하지 않지만 Jon의 경우 모든 시소러스를 반환합니다. 이상하지만 이것이 작동하는 방식입니다.

당신이 두 단어를 찾고 있다면 난 당신이

WHERE CONTAINS(NAME, 'FORMSOF (THESAURUS, Jon) OR "Smith"') 
+0

대단히 감사합니다. – NibblyPig

0

사용할 때 선택 언어 매개 변수를 사용하여 사용할 언어를 지정해야이 포함되어 있는지 확인 또는 FREETEXT

Contains and Free Text Information

나는 또한 차트를 보면서 영국 영어 LCID는 2057.

+0

이 쿼리를 실행하고 * mine이 미국으로 설정되어 있다고 생각합니다. 'exec sp_configure'default language ' SELECT @@ language, @@ langid'하지만 어렵습니다. 내가 좋은 문서를 찾기 위해 고심하고 있기 때문에 확신을 가져라. 나는 그것이 포함되기를 희망하기 때문에 간단한 내용을 사용하고있다. 그러나 그것은 동의어/반의어 사전에서 대안을 선택하지는 않는다. – NibblyPig

+0

CONTAINS (*, 'searchTerm', 1033)을 사용해 보셨습니까? – jazakari

+0

흠 유효한 구문이 아닙니다. 나는 (MyColumn, 'Test', LANGUAGE 1033)'이 들어있는 MyTable에서'select * '를 시도했지만 시소러스를 사용하지 않았다. – NibblyPig