문제

다음 사용자 입력이 주어진 MSSQL 전문 엔진으로 검색을 실행하고 싶습니다. "Hollywood Square"

나는 그 결과가 할리우드와 스퀘어를 모두 갖기를 원합니다.

웹 서버 (c#, asp.net)에서 메소드를 만들어 다음과 같은 SQL 문을 동적으로 생성 할 수 있습니다.

SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,'"hollywood*"')
AND CONTAINS(TITLE, '"square*"')

충분히 쉽습니다. 그러나 매개 변수를 추가하기위한 속도 이점 및 보안을 추가하기 위해 저장된 절차에서이를 원합니다.

케이크를 먹고 먹을 수 있나요?

도움이 되었습니까?

해결책

나는 위에서 동의하고 조항을 조사하고 조항을 동의했다

SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,'"hollywood*" AND "square*"')

그러나 입력 문장을 분할 할 필요는 없으며 변수를 사용할 수 있습니다.

SELECT TITLE
FROM MOVIES
WHERE CONTAINS(TITLE,@parameter)

그건 그렇고 정확한 용어를 검색 (포함) 문구 (freetext)에서 모든 용어를 검색하십시오.

다른 팁

마지막 으로이 작업을 수행해야 할 때 (MSSQL Server 2005를 사용하면) 전체 검색 기능을 Lucene으로 옮겼습니다 (Lucene.net은 현재 존재하지만 Java 버전이 존재하지만). 나는 전체 텍스트 검색에 대한 높은 희망을 가지고 있었지만이 구체적인 문제는 내가 포기한 것을 너무 짜증나게했습니다.

문자열에서 논리 연산자를 사용해 보셨습니까? 나는 날린 끈으로 내 스프로크와 물건 사이에 '단어 사이에'전달됩니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top