/*테스트 환경 생성
WINXP(SP3)+SQL SERVER2005(SP3)*/
object_id('tb')가 null이 아닌 경우
드롭 테이블 TB
가다
테이블 TB 생성
(id int ID(1,1),
제목 varchar(200),
상세 varchar(1000),
제약 조건 pk_id 기본 키(id) – 전체 텍스트 인덱스를 구축할 때 필요합니다.
)
TB에 삽입
'로케츠가 신인 슈터와 계약을 앞두고 있다'를 선택하면 버딩거와 로키츠의 계약 협상이 어제 완료돼 버딩거도 테일러와 같은 계약을 맺게 되는 것으로 알려졌다. 앞서 매체는 테일러의 계약 기간은 4년, 총 1만 달러(한화 약 1천만 원) 상당이며, 이 중 처음 2년은 계약이 보장된다고 밝혔다. Budinger는 앞으로 며칠 안에 Rockets 합류를 공식적으로 발표할 것으로 예상됩니다. '
모두 노동조합
'위버가 그리스 거인과 계약을 체결한 것으로 밝혀졌다', '국제농구네트워크(International Basketball Network)에 따르면 전 로켓츠 선수 반 위버가 그리스 거인 올림피아코스와 계약을 체결했다. Weaver는 $10,000 상당의 2년 계약을 받았습니다. '
모두 노동조합
'스퍼스는 레이커스를 상대로 싸우기 위해 많은 돈을 썼다', '스퍼스는 이번 여름 오프시즌 동안 여러 명의 장군을 추가했습니다.' 그렉 비치 감독은 최근 야후 스포츠와의 인터뷰에서 스퍼스가 이적료를 지불하는 데 주저하지 않았다고 밝혔습니다. 럭셔리 빌딩을 짓기 위한 사치세 라인업은 레이커스와 맞서며 5번째 우승을 노린다. '
모두 노동조합
데일리 헤럴드에 따르면 '월리스는 모터 시티를 떠날 생각을 한 적이 없다', '벤 월리스는 디트로이트 피스톤스로 복귀하기로 합의했고 베테랑 최저 연봉으로 피스톤스와 연간 10,000달러 계약을 체결했습니다.' McGraw는 당시 NBA를 장악했던 내부 수비 선수가 피스톤스를 떠날 생각조차 하지 않았다고 밝혔습니다. '
모두 노동조합
'밀러는 사랑을 위해 싸우고 아내를 쫓는 데 너무 능숙하다', '레지 밀러가 페이서스와 함께 "밀러 타임"을 만드는 것을 본 적이 없는 "후위자들"에게 이 전 NBA 스타를 어떻게 소개해야 할까요? 그저께 로스앤젤레스 말리부 해변 상공에 비행기가 뽑은 배너부터 시작될 수 있을까요? 이런 일을 하려는 부모가 없을 것 같습니다. '
모두 노동조합
'야오밍: 상하이를 투자 프로젝트로 여기지는 않았지만 좋은 사람으로 사업을 할 수 있어서 행복했다''를 선택했다. '야오미'는 "광고 효과가 부족하지 않은 야오밍이 멸종 위기에 처한 상하이 오리엔탈 농구단은 그가 전직을 위해 정말로 먹고살고 싶어한다는 것을 보여줍니다. 모팀이 뭔가를 합니다. '
모두 노동조합
'로케츠가 위저즈에 패해 올해 기록 경신', '야오-마이 조합은 이번 캠페인에서 형편이 좋지 않았다. 야오밍은 슛에 리바운드와 블록을 기록했고, 맥그레이디는 리바운드와 어시스트를 기록했다. 두 사람은 팀을 이루어 리바운드를 기록했습니다. 제이미슨은 어시스트 2개와 블록 2개를 기록했습니다. '
1단계: 데이터베이스의 전체 텍스트 인덱싱 활성화
sp_fulltext_database 활성화 --데이터베이스의 전체 텍스트 인덱싱을 활성화합니다.
가다
2단계: 전체 텍스트 카탈로그 만들기
전문 카탈로그 생성 tb_fulltext
경로 N'D:Program FilesMicrosoft SQL Server2005MSSQL.1MSSQLFTData'
Accent_sensitivity =on 사용 - 악센트 구분
인증 dbo;--전체 텍스트 카탈로그의 소유자
3단계: 전체 텍스트 인덱스 만들기
TB에 전체 텍스트 색인 생성
(제목, 세부정보)
키 인덱스 pk_id --인덱스 열을 지정하면 성능 향상을 위해 클러스터형 인덱스를 사용하는 것이 가장 좋습니다.
tb_fulltext에서
withchange_tracking auto - 연결된 테이블에서 데이터가 수정되면 전체 텍스트 인덱스를 자동으로 업데이트합니다.
4단계: 쿼리 예:
TB에서 *를 선택하세요
어디에((제목,세부사항),'야오밍')이 포함되어 있나요?
쿼리 구문:
1. 특정 단어 검색: 포함(세부사항,'야오밍')
2. 특정 문구 검색: 해당 문구를 큰따옴표로 묶으려면 ""를 사용하고, 포함(세부사항,'야오밍 상하이')
3. 여러 열에서 단어 및 구문 검색: contain((title,detail),'Yao Ming Shanghai')
4. 지정된 텍스트로 시작하는 단어나 문구를 검색합니다: contain(detail,'"Yao Ming*"')
텍스트와 별표를 큰따옴표로 묶지 않은 경우 전체 텍스트 검색에서는 별표를 하나의 문자로 처리합니다. 구문을 검색하는 경우 해당 구문 내의 각 단어는 접두사로 간주됩니다. contain(detail,'"Yao Ming Shanghai*"') 는 첫 번째 단어가 Yao Ming으로 시작하고 두 번째 단어가 Shanghai로 시작하는 결과를 반환합니다.
5. 특정 단어의 변형 검색: contain(detail,'formsof(inflectional,ride)')
테이블에 ride, rides, riden, rided가 포함된 행을 반환합니다.
6. 다른 단어나 문구와 가까운 단어나 문구 검색: 포함(상세,'상하이 근처 야오밍')
7. 가중치를 사용하는 단어 또는 구문: 포함(설명,'isabout(성능 가중치(.8),편안한 가중치(.4),부드러운 가중치(.2))')
가중치는 각 단어나 구문에 0.0에서 1.0 사이의 가중치 값을 할당합니다.
8. 여러 검색 조건을 사용하세요: contain(detail,'"Yao Ming" or "Shanghai"')
포함(세부정보,''야오밍'' 및 '상하이'')
포함(세부정보,'상하이'가 아닌 '야오밍')
9. 포함된 변수를 사용할 수도 있습니다.
10. 동의어 검색 contain(title,'formsof(thesaurus,on)')
【시험】
위의 예에서 다음을 실행합니다.
TB에서 *를 선택하세요
어디에(제목,'상하이')가 포함되어 있습니까?
결과:
ID 제목 세부정보
6 Yao Ming: 그는 상하이를 투자 프로젝트로 여기지 않았습니다. 그는 좋은 사업가가 되어 기쁘고 좋은 사람이 되었습니다. "Yao Mi"는 다음과 같이 말했습니다: 광고 효과가 부족하지 않은 Yao Ming은 Shanghai Oriental을 인수했습니다. 멸종 위기에 처했던 농구부, 이는 그가 전 모팀 문제를 위해 정말로 뭔가를 하고 싶어한다는 것을 보여준다.
그러나 다음을 실행하십시오.
TB에서 *를 선택하세요
어디에(제목,'상')이 포함되어 있습니까?
결과는 빈 세트입니다.
이유: 전체 텍스트 인덱스 쿼리를 수행할 때 "上"은 중국어 간체의 간섭 단어입니다. 즉, 쿼리 중에 무시됩니다. 또한 전체 텍스트 인덱스를 설정할 때 문구는 일반적으로 다음과 같이 사용됩니다. 단일 단어 대신 색인 항목.
이 쿼리를 다시 수행하고 첫 번째 쿼리의 결과를 찾으려면 전체 텍스트 인덱스의 동의어 사전을 수정하면 됩니다.
의미 없는 단어 및 동의어 파일이 존재하는 경로:
D:Program FilesMicrosoft SQL Server2005MSSQL.1MSSQLFTData. 각 파일 이름은 쉽게 식별 가능해야 합니다.
다음은 동의어 사전을 수정하는 방법에 대한 간략한 소개입니다.
1. 메모장을 사용하여 중국어 간체의 동의어 라이브러리인 tschs.xml을 엽니다.
<XML ID="Microsoft 검색 동의어 사전">
<!-- 주석 처리됨
<thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
<확장>
<sub>인터넷 익스플로러</sub>
<sub>IE</sub>
<sub>IE5</sub>
</확장>
<대체>
<pat>NT5</pat>
<pat>W2K</pat>
<sub>윈도우 2000</sub>
</replacement>
<확장>
<sub>실행</sub>
<sub>조깅</sub>
</확장>
</thesaurus>
-->
</XML>
설명하다:
<대체>
<pat>NT5</pat>
<pat>W2K</pat>
<sub>윈도우 2000</sub>
</replacement>
는 대체 단어입니다. 즉, W2K를 쿼리할 때 자동으로 Windows 2000으로 대체되어 쿼리됩니다.
<확장>
<sub>실행</sub>
<sub>조깅</sub>
</확장>
즉, 실행을 쿼리하면 조그도 검색되는 동의어 라이브러리입니다.
이 예에서는 다음을 추가합니다.
<확장>
<sub>위로</sub>
<sub>상하이</sub>
</확장>
2. 끝에서 시작하는 주석 줄을 제거합니다.
<!-- 주석 처리됨
-->
3. 최종 결과는 다음과 같습니다.
<XML ID="Microsoft 검색 동의어 사전">
<thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
<확장>
<sub>인터넷 익스플로러</sub>
<sub>IE</sub>
<sub>IE5</sub>
</확장>
<대체>
<pat>NT5</pat>
<pat>W2K</pat>
<sub>윈도우 2000</sub>
</replacement>
<확장>
<sub>실행</sub>
<sub>조깅</sub>
</확장>
<확장>
<sub>위로</sub>
<sub>상하이</sub>
</확장>
</thesaurus>
</XML>
3. 쿼리 문을 실행합니다.
TB에서 *를 선택하세요
어디에(제목,'형태(동의어 사전,on)')이 포함되어 있습니까?
쿼리 결과가 contain(title,'Shanghai') 와 동일한 것을 확인할 수 있습니다.