Pesquisa do SharePoint: processamento de nomes de arquivo contendo sublinhados

1

Usamos o SharePoint Server 2007 para permitir que os funcionários pesquisem compartilhamentos de arquivos de rede, mas parece que os sublinhados em nomes de arquivos não são tratados como separadores de palavras ao indexar os arquivos.

Como resultado, uma pesquisa por chocolate irá:

  • corresponde a " chocolate milkshake.doc"
  • mas não corresponde a "chocolate_cake.doc"

(Claro, este é um exemplo simplificado; na prática, o conteúdo do segundo arquivo pode incluir a palavra "chocolate" e combinar com isso em vez do nome do arquivo. Mas o problema em si é real o suficiente, porque um cenário comum em um ambiente corporativo é que um usuário sabe o nome parcial do arquivo que está procurando e espera ver nomes de arquivos correspondentes na parte superior dos resultados da pesquisa.Usar sublinhados em nomes de arquivos é uma convenção amplamente usada dentro da nossa empresa).

Os sublinhados também não são tratados como separadores de palavras no conteúdo do arquivo, embora isso seja uma preocupação menor para nós. A causa deste problema está possivelmente relacionada ao comportamento dos separadores de palavras que o SharePoint usa (ou seja, as DLLs específicas do idioma que implementam a interface do IWorkBreaker), embora eu ainda não tenha confirmado isso. / p>

Alguém sabe de uma solução alternativa para esse problema? Eu testei com o Search Server 2008 Express também (que é baseado na mesma tecnologia), e também é afetado. Não sei se o problema foi corrigido no SharePoint 2010 ou não.

    
por Todd Owen 07.06.2010 / 11:45

2 respostas

1

Eu não acho que os sublinhados sejam tratados como delimitadores, e há um pouco de tráfego no social.technet que parece confirmar isso. Se (desde) esse for o caso, você precisará de uma pesquisa parcial / curinga para corresponder a "chocolate" de "chocolate_cake.doc", que a web part de resultados principais não fará. No entanto, existe uma web part do code-code para 2007 que faz exatamente isso.

FYI, a versão 2010 desta mesma parte da Web observa que o SharePoint 2010 adiciona pesquisas com curinga, desde que o usuário digite o asterisco.

    
por 07.06.2010 / 15:49
1

Confirmei que o separador de palavras determina o tratamento de sublinhados para o conteúdo do documento e para os nomes dos arquivos. Os separadores de palavras são configurados em uma base por idioma no registro.

Os separadores de palavras são implementados como controles ActiveX e, teoricamente, deve ser possível criar o seu próprio (o Microsoft Platform SDK para Windows XP inclui um exemplo, "lrsample"), mas não tenho as ferramentas disponíveis para fazer naquela. Parece que muitos dos separadores de palavras que a Microsoft fornece tratam sublinhados como parte de uma palavra, mas eu encontrei um que quebra em sublinhados: versão 2 do separador de palavras para chinês simplificado (chsbrkr.dll - 1.677.824 bytes). Observe que esse comportamento difere da versão 3 do separador de palavras em chinês simplificado, que é fornecido com o Search Server 2008 Express e provavelmente também com o SharePoint 2007.

Para obter o comportamento de pesquisa desejado, configurei a Pesquisa do SharePoint para usar esse separador de palavras:

  1. Copie a DLL para C: \ Arquivos de Programas \ Microsoft Office Servers \ 12.0 \ Bin \ chsbrkr2.dll
  2. Use o regedit para navegar até HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Servidor do Office \ 12.0 \ Search \ Setup \ ContentIndexCommon \ LanguageResources \ Default
  3. Para os idiomas relevantes, no meu caso "Inglês (Reino Unido)" e "Inglês (Estados Unidos)", modifique as seguintes chaves: "WBDLLPathOverride" = "C:\PROGRA~1\MI54E7~1.0\Bin\ChsBrkr2.dll" (seu caminho pode ser diferente) e %código%
  4. Reinicie o serviço "Office SharePoint Server Search" (pode ser feito por meio da linha de comando executando "WBreakerClass" = "{9717fc70-c1bc-11d0-9692-00a0c908146e}" seguido por net stop osearch ).
  5. Vá para a página de administração de pesquisa e inicie um rastreamento completo.

Além de tratar sublinhados como uma quebra de palavra, não tenho certeza se existem outras diferenças significativas entre chsbrkr.dll e o padrão de quebra de palavras em inglês, mas até agora isso não causou nenhum problema para mim. Seria ótimo se houvesse uma maneira de aplicar o separador de palavras personalizado a propriedades gerenciadas específicas (Caminho, neste caso), mas não sei se isso é possível. Há uma coluna de nome promissor na tabela MSSManagedProperties do banco de dados chamada "WordBreakerOverride", mas não sei qual é sua finalidade.

OBSERVAÇÃO: No SharePoint 2010, as propriedades gerenciadas aparentemente têm uma configuração adicional chamada SplitStringCharacters, o que pode tornar essa solução obsoleta.

    
por 08.06.2010 / 08:43