2011-08-09 3 views
1

VARCHAR 유형의 열을 포함하는 테이블이 있습니다. 사용자 입력 쿼리에 따라 열 안의 문자열을 검색하고 싶습니다. 대략적인 검색을 구현하고 싶습니다. 그리고 내 테이블에는 Lacs 레코드가 들어 있습니다. 검색을 구현할 수있는 몇 가지 방법이 있습니다.검색 최적화를 위해 문자열을 저장하는 방법

  1. C#의 모든 레코드를로드하고 검색 알고리즘을 적용합니다. (그러나 너무 많은 메모리를 소비합니다.)

  2. 레코드를 개별적으로 또는 미리 정의 된 배치 크기로 가져 와서 검색 알고리즘을 적용합니다. (그러나 성능을 다운 그레이드 할 수있는 신속하게 데이터베이스 연결을 설정합니다.)

을 나는,이 기능이나 내가 그것을 검색 할 수 있도록 데이터를 저장하는 몇 가지 기술을 구현하기위한 다른 메커니즘이 될 것이라고 확신합니다 빠릅니다.

아무에게도이 아이디어를 구현하는 데 더 좋은 아이디어를 줄 수 있습니까?

+3

전체 텍스트 검색을 살펴보아야하는 것처럼 들립니다. http://msdn.microsoft.com/en-us/library/ms142571.aspx – Tao

+0

데이터베이스 함수를 작성하면 해당 함수를 SQL에서 사용할 수 있습니다. 요즘 대부분의 데이터베이스에는 퍼지 검색을 코딩 할 수있는 언어가 있습니다. –

+0

@ 타오 : 답변에 댓글을 달아주세요. 당신은 그것을 할 수있는 가능성이 높습니다. – LukeH

답변

3

Lucene은 검색하는 가장 좋은 방법 중 하나입니다. 여전히 데이터베이스에 문자열을 저장할 수 있지만 Lucene 색인을 작성한 다음 검색에 사용합니다.

+0

사람이 그것에 대해 갈 수있는 방법을 나타낼 수 있습니다 좋을지,이 질문은 튜토리얼/개요에 링크하는 것 : http://stackoverflow.com/questions/37059/lucene-net-and-sql-server/37173 # 37173 – Tao

+0

@Tao : 참조 용 Tao, 정말 좋은 튜토리얼을 가져 주셔서 감사합니다. –

2

SQL Server에는 찾고자하는 것을 정확하게 수행 할 수있는 기본 제공 기능이 있습니다. 전체 텍스트 검색이라고합니다. 여기에 마이크로 소프트에서

개요 : http://msdn.microsoft.com/en-us/library/ms142571.aspx

일반적인 개념은 테이블/열을 검색 가능한 텍스트를 포함하는 어떤 SQL 서버에게, 그리고이 공간 효율적인 쿼리 효율적 "전체 텍스트 인덱스 '구축이다; 이러한 인덱스는 비동기 적으로 작성되므로 (업데이트/삽입이 느려지지 않음) SQL Server 2005부터 데이터베이스와 함께 (예 : 백업에) 저장되므로 쉽게 관리 할 수 ​​있습니다.

검색 할 때 쿼리 언어는 "일반"텍스트 일치와 다릅니다.

전체 텍스트 검색은 무료 "SQL Server 2008 Express 고급 서비스"버전에서도 사용할 수 있으므로 비용은 더 이상 걱정할 필요가 없습니다.

관련 문제