0

SQL Server 2008 R2 및 freetexttable을 사용하여 내 사이트의 전체 텍스트 검색을 실행하고 있습니다. 정지 단어를 입력하면이 오류가 발생합니다.전체 텍스트 검색 잡음 텍스트에서 Freetextable Failing 사용 - SQL Server 2008 R2 변형 잡음 단어가 작동하지 않습니다.

정보 : 전체 텍스트 검색 조건에 노이즈 단어가 포함되어 있습니다.

그래서 모든 사람들이 말했던 것을 수행하고 변환 노이즈 단어를 켜서 중지/노이즈 단어가 무시되고 쿼리를 계속할 수 있습니다. 그러나 이것은 아무것도 변경하지 않았습니다 :

sp_configure 'show advanced options', 1; 
RECONFIGURE; 
GO 
sp_configure 'transform noise words', 1; 
RECONFIGURE; 
GO 

나는 여전히 같은 오류 메시지가 나타납니다. 그래서 지금은 내 유일한 옵션은 중지 목록을 끄는 것입니다. 그러나 누군가가 "the"를 검색에 넣으면 모든 페이지가 "the"를 거의 가지고 있기 때문에 모든 페이지를 반환 할 것이기 때문에 좋지 않습니다. 중지 단어를 제거하고 싶지만 SQL Server 2008 R2가 저를 위해 작동하지 않습니다.

누군가가 실제로 2008 R2에서 작동하도록 했습니까? 내 호환성 수준은 이미 100입니다.

나를 무시하고 색인을 생성하지 못하게하는 방법이 있습니까?

답변

2

매우 늦었을 때 누군가가 도움을 줄 수 있습니다.

시스템 중지 목록을 기반으로 newstoplist를 만듭니다. 이것은 내가 다음 새 spotlist을 확인 제대로 만들어진

CREATE FULLTEXT STOPLIST slMyNewStopList 
FROM SYSTEM STOPLIST AUTHORIZATION dbo; 

(당신이 2008+ SQL에서 수정할 수 없습니다) 시스템 중지 목록에있는 모든 단어와 함께 새 중지 목록을 생성;

필자의 경우 새로운 stoplist는 ID 6이었습니다. 제거하려는 단어는 그랬습니다. 사람들은 데이터에서 "IT 기능"을 검색 할 수 있기를 원했습니다. 그래서 저는 카탈로그에서이 단어를 확인했습니다.

select * from sys.fulltext_stopwords 
where stoplist_id = 6 and stopword = 'it' and language like '%english%' 

단어를 중지 목록에서 제거하려면 시스템 기능을 호출해야합니다. 나는 영어와 영국 영어를 위해 그것을 제거했다. 이 시점에서 세미콜론을 사용해야합니다.

ALTER FULLTEXT STOPLIST slMyNewStopList DROP 'it' LANGUAGE 'English'; 

ALTER FULLTEXT STOPLIST slMyNewStopList DROP 'it' LANGUAGE 'British English'; 

나는 그때 그때에 IT 단어를 검색 할 수 있기를 원 테이블을 업데이트 다시

select * from sys.fulltext_stopwords 
where stoplist_id = 6 and stopword = 'it' and language like '%english%' 

선택 쿼리를 실행하여 단어가 내 중지 목록에서 누락 된 확인;

USE [Database] 
GO 
ALTER FULLTEXT INDEX ON [dbo].[tblDocuments] SET STOPLIST = [slMyNewStopList] 

마지막으로 문서가 모두 다시 색인화되도록 카탈로그를 다시 작성했습니다.

USE [Database] 
GO 
ALTER FULLTEXT CATALOG [catExample] REBUILD 
GO