2009-06-26 3 views
0

나는 MS SQL 2008의 FTS (전체 텍스트 검색)를 사용하는 웹 사이트를 운영하고 있습니다. 사용자가 인 아포스트로피가 인 문자열을 검색하면 인 이 포함 된 결과가 반환됩니다. 그러나 사용자가 이고, 데이터베이스가 인 경우 결과를 반환하지 않습니다. 또한MS SQL 2008 FTS에서 아포스트로피 (')를 처리하려면 어떻게해야합니까?

도 및 그 먹으 렴 를 반환해야합니다 것 이상적으로 검색,

FTS이 지원하는 경우 누구나가 알고, 내가 그것을 가능하게하기 위해 무엇을 할 수 있는가?

WT

답변

1

사용하는 번거 로움없이 매개 변수

myCommand.Parameters.AddWithValue("@searchterm", txtSearch.Text.Trim()); 

당신에 의해 처리 될 것입니다.

에 대해서는 SOUNDEX 키워드를 찾아 봐야합니다. 4GuysfromRolla도 약 old article입니다. 이 here에 관한 TFS 팀 멤버 중 하나의 큰 이야기가

이 업데이트되었습니다.

그를 인용 :

다니엘은 올바른 전체 텍스트 검색 (FTS)는 SOUNDEX 직접 를 사용하지 않는 것입니다 있지만 SOUNDEX와 함께 사용할 수 있습니다.
는 또한 다음 링크뿐만 아니라 을 결합 TSQL 아래 예를 검토 CONTAINS 할 수 있습니다 & SOUNDEX 당신은 에서 개선 된 사운 덱스 알고리즘의 일부뿐만 아니라 을보고 할 수 있습니다

http://www.winnetmag.com/Article/ArticleID/26094/26094.html 0123에서 "더블 메타 폰은 큰 소리"- '메타 폰 사운 덱스의 "SQL Server"퍼지 이름 검색'내가 빨리 발견은 : Levenshtein 거리 알고리즘

당신 예를 들어, 더 많은 코드 예제를 찾기 위해 구글을 검색 할 수 있어야한다
Double Metaphone을 구현하는 사용자 정의 함수 (UDF)가 여러 개인 zip 파일로 코드를 자유롭게 다운로드 할 수 있습니다. http://www.bcs-mt.org.uk/nala_006.htm


http://www.merriampark.com/ld.htm
(국자 아웃 생략)

use pubs  

-- Combined SOUNDEX OR CONTAINS query that 
-- Searches for names that sound like "Michael".  
SELECT 
    au_lname, au_fname 
FROM 
    authors -- returns 2 rows  
WHERE 
    contains(au_fname, 'Mich*') or SOUNDEX(au_fname) = 'M240' 

감사합니다,

SQL 전체 텍스트 : 다음

몇 가지 추가 SOUNDEX의 링크입니다 바다 rch 블로그
http://spaces.msn.com/members/jtkane/

+0

안녕하십니까, 링크를 이용해 주셔서 감사합니다. 매개 변수에 대한 부분을 이해하지 못했습니다. 이미 값을 전달하고있는 SP를 사용하고 있습니다. 이게 당신이 의미 한거야? –

+0

예. 당신은 인라인 SQL을 사용할 수 있었고 작은 따옴표 char에 대해 고심하고 있었지만, 보여주는 것과 같은 매개 변수를 사용하면 모든 특수 문자가 올바르게 전달됩니다. - SOUNDEX 및 FTS 관련 추가 콘텐츠 - – balexandre

+0

감사합니다. - SOUNDEX의 변형 인 DIFFERENCE를 사용하여 즉시 문제를 해결할 수있었습니다! 훌륭한! 감사! 당신이 보낸 링크를 읽을 것입니다. 만약에 제가주의해야 할 것이 있다면 ... –

관련 문제