Share via


Understanding Exchange 2007 Search & Index #1

Exchange 2007 Search and Index 

메일을 사용하는 유저의 입장에서 원하는 데이터를 빠르고 정확하게 검색하는 Search 기능은 꼭 필요하면서도 매우 중요한 문제일것입니다.

Microsoft Exchange Server 2007 에서의 검색은 기본적으로 Exchange DB로부터 미리 생성된 Index를 통하여 메시지를 빠르게 검색합니다.

사실 미리 생성된 Index로부터 원하는 내용을 검색하는 기능은 Exchange 2007에서 처음 제공하는 내용은 아닙니다.
이전 버전의 Exchange서버에서도 미리 생성된 Index파일을 통해서 Search에 사용하는 기능은 제공되어 왔었습니다.

하지만 Exchange 2003의 경우 Index를 통한 Exchange Search기능은 Default로 Disable되어 있었습니다.

Exchange 2003의 경우 Exchange System Manager에서 각 Database 저장소에 대하여 "전체 텍스트 인덱스 만들기"를 통하여 Index를 생성할 수 있었습니다.
하지만 Exchange 2003서버의 경우 이러한 인덱싱 작업자체가 서버의 성능을 떨어뜨리는 큰 요인으로 작용했기 때문에 이 기능을 Disable하고 사용하는것이 가장 좋은 방법으로 권장되어 왔습니다.

반면, 이전버전의 Exchange서버들에 비하여 Exchange 2007 Server는 훨신 향상된 성능, 향상된 검색알고리즘등을 통하여 원하는 메일과 첨부파일(Filter에 의해 제공되는) 의 텍스트들을 정확하게 검색할 수 있도록 도와줍니다.
Exchange 2007에서는 Search 알고리즘과 Search Engine의 향상으로 이러한 부분은 더 이상 걱정하지 않으셔도 되며 기본적으로 설치시 Index기능은 Enable되어 있습니다.
이전버전의 Exchange서버에 비해 Indexing은 약 35배정도 이상 빠른데 비해 CPU사용률은 Indexing 과정동안 3%~5%정도라고 합니다.

또한 Exchange 2007 서버에서의 Search 는 Microsoft Search Version 3.0을 기반으로 하며 이는 SQL Server 2005 및 Sharepoint Portal Server 2007에서도 사용되는 엔진입니다.

그럼 좀 더 Exchange 2007에서의 Search 방법을 설명하면 크게는 2가지로 나눠집니다.
첫번째는 위에서 설명한 미리 생성된 Index를 기반으로 검색하는 Microsoft Exchagne Search(또는 컨텐츠인덱싱을 통한 검색) 과 저장소 검색( In-Store Search)라는 방법으로 나눠집니다.

쉽게 말해 Microsoft Exchange (Search)서비스와 Microsoft Search Indexer를 통해서 관리되는 방법은 Index를 기반으로 하는 검색이며 이 서비스들이 동작하지 않을경우에 사용되는 방법은 저장소검색입니다.

 

그럼 두 Search 방법을 비교해보자면,

1. Index를 통한 Exchange Search 검색이 더 빠릅니다
   당연하겠지만 Index기반 검색의 경우 미리 생성된 인덱스파일로부터 검색하기 때문에 검색할 폴더나 Mailbox의 모든내용을 일련의 스캔과정을 통해서 검색하는 저장소 Search에 비해 빠릅니다.

2. Index기반 Search가 더 효율적입니다.
   Index기반 검색이 단어(Words), 구문(Phrases), 문장(Sentence)를 기준으로 이루어지는 반면 저장소검색은 일련의 Byte를 기준으로 이루어집니다. 따라서 Index기반 검색의 경우 구두점과 공백등을 무시하고 대/소문자를 검색하지 않는 반면 저장소 검색은 모든 문자가 정확하게 일치하는 경우만을 검색하게 됩니다.

3. Index기반검색은 첨부파일까지도 검색합니다(단, 설치된 Filter에 의해 제공되는 확장자에 한해서입니다. Default로 Word, PDF,HTML, PPt, Exel등이 이에 해당합니다)
Index기반검색은 설치된 Filter에 의하여 지원되는 첨부파일 검색기능을 제공합니다만 이에 반해 저장소 검색은 MAPI Property 를 통하여 Message Body만을 검색하게 됩니다.

4. Index기반 검색이 더 정확합니다.
이유는 접미사(Prefix)를 사용합니다. 예를들어 ex를 검색할 경우 exchange, exercise등이 검색되지만 next, hex등은 검색되지않습니다, 반면 저장소 Search에서는 이러한부분까지 모두 검색합니다

5. Index기반 검색은 한국어,일본어, 중국어와 같은 2바이트 언어검색능력이 뛰어납니다.
Non-English언어를 이해하기 때문에(각 언어의 word breaker에 의해 indexing과정이 일어남) 일본어와 같은 Double-Byte언어에 대하여 비교적 정확한 검색능력을 보여줍니다.
이에 반해 저장소 검색은 바이트스트림에 의한 검색이 수행됨으로 2바이트체계의 언어의 검색에 다소 어려움을 느낍니다

 Search 관련 서비스들

1. Microsoft Search Indexer - Search를 위한 Index파일을 관리하고 생성합니다. 또한 새로운 Item이 도착했을때 이를 모니터링하고 필요한 Index파일을 업데이트하도록 필요한 프로세스를 요청하여 줍니다.

2. Microsoft Search (Exchange) - Index되지 않은 Item을 찾았을 때 Indexer는 MS Search서비스에게 이러한 Item을 알려주고 Search 서비스에 의해 Index가 업데이트됩니다.

 

Exchange 서버는 각 Database가 위치한 폴더에 Catalog 폴더를 생성하고 Index파일을 유지합니다.

 만약 Microsoft Search (Exchange) 서비스와 Microsoft Search Indexer서비스가 중지되어 있을때 OWA에서 검색을 시도하면 아래처럼 나타납니다.
이는 Index기반 검색이 불가능하기 때문에 저장소검색(Store Search)를 사용하겠다는 경고이며 속도와 검색결과에 대하여 경고하고 있습니다

참고로 각 Client 에서 사용하는 검색방법입니다.

1. OWA - Index기반 검색 즉, Microsoft Search 서비스를 통해서 검색하며 이 서비스가 중지될경우 저장소 Search를 사용합니다.
2. Outlook 온라인모드 - OWA와 마찬가지로 Exchange Search서비스에 기반한 Index 검색을 수행합니다. 마찬가지로 서비스 중지시 Store Search를 사용합니다
3. Outlook 캐시모드 - 로컬 PC에 설치되어 있는 Windows Desktop Search 엔진을 사용합니다. Outlook 2007의 경우 빠른 검색기능을 Enabled하면 Windows Desktop Engine 3.0이 설치되어 이를 통하여 향상된 검색기능을 사용할 수 있습니다.

Index를 관리하고 유지하는 방법은 다음 세션에서 다시 다루도록 하겠습니다.

 

참고)
Exchange 검색 이해
https://technet.microsoft.com/ko-kr/library/bb232132(EXCHG.80).aspx

일부 내용은 Tony Redmond의 Exchange Server 2007을 참고했습니다.

written by dyjung