SharePoint 검색: 밑줄이 포함된 파일 이름 처리

SharePoint 검색: 밑줄이 포함된 파일 이름 처리

직원들이 네트워크 파일 공유를 검색할 수 있도록 SharePoint Server 2007을 사용하고 있지만 파일을 인덱싱할 때 파일 이름의 밑줄이 단어 구분 기호로 처리되지 않는 것 같습니다.

그 결과, 검색해 보면초콜릿할 것이다:

  • 성냥 "초콜릿밀크쉐이크.doc"
  • 하지만 "chocolate_cake.doc"와 일치하지 않습니다.

(물론 이는 단순화된 예이므로 실제로는콘텐츠두 번째 파일에는 "초콜릿"이라는 단어가 포함되어 파일 이름 대신 해당 단어와 일치할 수 있습니다. 그러나 문제 자체는 충분히 현실적입니다. 기업 환경의 일반적인 시나리오는 사용자가 찾고 있는 파일의 일부 이름을 알고 있고 검색 결과 상단에 일치하는 파일 이름이 표시되기를 기대하는 것이기 때문입니다. 그리고 파일 이름에 밑줄을 사용하는 것은 우리 회사 내에서 널리 사용되는 규칙입니다.

밑줄은 파일 내용에서 단어 구분 기호로 처리되지 않지만 이는 우리에게는 그다지 중요하지 않습니다. 이 문제의 근본 원인은혹시아직 확인하지는 않았지만 SharePoint에서 사용하는 단어 분리기(예: IWorkBreaker 인터페이스를 구현하는 언어별 DLL)의 동작과 관련이 있습니다.

이 문제에 대한 해결 방법을 아는 사람이 있습니까? 동일한 기술을 기반으로 하는 Search Server 2008 Express도 테스트했는데 역시 영향을 받았습니다. SharePoint 2010에서 문제가 해결되었는지 여부는 알 수 없습니다.

답변1

나는 밑줄이 구분 기호로 취급되지 않는다고 생각하며 이를 확인하는 것으로 보이는 social.technet에 약간의 트래픽이 있습니다. 그런 경우에는 'chocolate_cake.doc'의 '초콜릿'을 일치시키기 위해 부분/와일드카드 검색이 필요하지만 핵심 결과 웹 파트는 이를 수행하지 않습니다. 그러나 코드플렉스가 있습니다.웹 파트2007년에는 바로 그런 일이 일어났습니다.

참고로,2010년 버전동일한 웹 파트에서는 ​​사용자가 별표를 입력하는 경우 SharePoint 2010에서 와일드카드 검색을 추가한다고 언급합니다.

답변2

단어 분리기가 문서 내용과 파일 이름 모두에 대한 밑줄 처리를 결정한다는 것을 확인했습니다. 단어 분리기는 레지스트리에서 언어별로 구성됩니다.

단어 분리기는 ActiveX 컨트롤로 구현되며 이론적으로는 직접 작성하는 것이 가능하지만(Windows XP용 Microsoft Platform SDK에는 "lrsample"이라는 예가 포함되어 있음) 그렇게 할 수 있는 도구가 없습니다. Microsoft에서 제공하는 많은 단어 분리기는 모두 밑줄을 단어의 일부로 처리하는 것 같지만 밑줄을 분리하는 단어 분리기를 찾았습니다. 중국어 간체용 단어 분리기 버전 2(chsbrkr.dll - 1,677,824바이트)입니다. 이 동작은 Search Server 2008 Express와 함께 제공되는 중국어 간체 단어 분리기 버전 3 및 아마도 SharePoint 2007과도 다릅니다.

따라서 원하는 검색 동작을 얻기 위해 다음 단어 분리기를 사용하도록 SharePoint 검색을 구성했습니다.

  1. DLL을 C:\Program Files\Microsoft Office Servers\12.0\Bin\chsbrkr2.dll에 복사합니다.
  2. regedit를 사용하여 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Setup\ContentIndexCommon\LanguageResources\Default로 이동합니다.
  3. 관련 언어(제 경우에는 "English (United Kingdom)" 및 "English (United States)")에 대해 다음 키를 수정합니다. "WBDLLPathOverride" = "C:\PROGRA~1\MI54E7~1\12.0\Bin\ChsBrkr2.dll"(경로가 다를 수 있음) "WBreakerClass" = "{9717fc70-c1bc-11d0-9692-00a0c908146e}"
  4. "Office SharePoint Server 검색" 서비스를 다시 시작합니다(명령줄에서 net stop osearch뒤에 를 실행하여 수행할 수 있음 net start osearch).
  5. 검색 관리 페이지로 이동하여 전체 크롤링을 시작하세요.

밑줄을 단어 분리로 처리하는 것 외에 chsbrkr.dll과 기본 영어 단어 분리기 사이에 다른 중요한 차이점이 있는지는 확실하지 않지만 지금까지는 문제가 발생하지 않았습니다. 특정 관리 속성(이 경우 Path)에 사용자 지정 단어 분리기를 적용할 수 있는 방법이 있으면 좋겠지만 이것이 가능한지는 모르겠습니다. 데이터베이스의 MSSManagedProperties 테이블에 "WordBreakerOverride"라는 유망한 이름의 열이 있지만 그 목적이 무엇인지 모르겠습니다.

메모:SharePoint 2010의 관리 속성에는 SplitStringCharacters라는 추가 설정이 있으므로 이 해결 방법이 더 이상 사용되지 않을 수도 있습니다.

관련 정보