Búsqueda de SharePoint: procesamiento de nombres de archivos que contienen guiones bajos

Búsqueda de SharePoint: procesamiento de nombres de archivos que contienen guiones bajos

Usamos SharePoint Server 2007 para permitir a los empleados buscar archivos compartidos en la red, pero parece que los guiones bajos en los nombres de archivos no se tratan como separadores de palabras al indexar los archivos.

Como resultado, una búsqueda dechocolatevoluntad:

  • fósforo "chocolatebatido.doc"
  • pero no coincide con "chocolate_cake.doc"

(Por supuesto, este es un ejemplo simplificado; en la práctica, elcontenidodel segundo archivo puede incluir la palabra "chocolate" y hacer coincidir esa palabra en lugar del nombre del archivo. Pero el problema en sí es bastante real, porque un escenario común en un entorno corporativo es que un usuario conoce el nombre parcial del archivo que está buscando y espera ver nombres de archivos coincidentes en la parte superior de los resultados de la búsqueda. Y el uso de guiones bajos en los nombres de archivos es una convención ampliamente utilizada dentro de nuestra empresa).

Los guiones bajos tampoco se tratan como separadores de palabras en el contenido del archivo, aunque esto no nos preocupa tanto. La causa fundamental de este problema esposiblementerelacionado con el comportamiento de los separadores de palabras que utiliza SharePoint (es decir, las DLL específicas del idioma que implementan la interfaz IWorkBreaker), aunque aún no lo he confirmado.

¿Alguien sabe de una solución para este problema? También lo probé con Search Server 2008 Express (que se basa en la misma tecnología) y también se ve afectado. No sé si el problema se solucionó en SharePoint 2010 o no.

Respuesta1

No creo que los guiones bajos se traten como delimitadores y hay algo de tráfico en social.technet que parece confirmarlo. Si (ya que) ese es el caso, necesitará una búsqueda parcial/comodín para que coincida con 'chocolate' de 'chocolate_cake.doc', lo cual el elemento web de resultados principales no hará. Sin embargo, hay un codeplexelemento webpara 2007 esto hace precisamente eso.

Para su información, elversión 2010de este mismo elemento web señala que SharePoint 2010 agrega búsquedas con comodines, siempre que el usuario escriba el asterisco.

Respuesta2

He confirmado que el separador de palabras determina el tratamiento de los guiones bajos tanto para el contenido del documento como para los nombres de archivos. Los separadores de palabras se configuran por idioma en el registro.

Los separadores de palabras se implementan como controles ActiveX y, en teoría, debería ser posible escribir los suyos propios (el SDK de la plataforma Microsoft para Windows XP incluye un ejemplo, "lrsample"), pero no tengo las herramientas a mano para hacerlo. Parece que muchos de los separadores de palabras que proporciona Microsoft tratan los guiones bajos como parte de una palabra, pero encontré uno que los separa: la versión 2 del separador de palabras para chino simplificado (chsbrkr.dll - 1,677,824 bytes). Tenga en cuenta que este comportamiento difiere de la versión 3 del separador de palabras en chino simplificado, que es el que se suministra con Search Server 2008 Express y probablemente también con SharePoint 2007.

Entonces, para obtener el comportamiento de búsqueda que deseo, configuré SharePoint Search para usar este separador de palabras:

  1. Copie la DLL a C:\Program Files\Microsoft Office Servers\12.0\Bin\chsbrkr2.dll
  2. Utilice regedit para buscar HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Setup\ContentIndexCommon\LanguageResources\Default
  3. Para los idiomas relevantes, en mi caso "Inglés (Reino Unido)" e "Inglés (Estados Unidos)", modifique las siguientes claves: "WBDLLPathOverride" = "C:\PROGRA~1\MI54E7~1\12.0\Bin\ChsBrkr2.dll"(su ruta puede ser diferente) y "WBreakerClass" = "{9717fc70-c1bc-11d0-9692-00a0c908146e}"
  4. Reinicie el servicio "Búsqueda de Office SharePoint Server" (se puede hacer a través de la línea de comando ejecutando net stop osearchseguido de net start osearch).
  5. Vaya a la página de administración de búsqueda e inicie un rastreo completo.

Además de tratar los guiones bajos como saltos de palabras, no estoy seguro de si existen otras diferencias significativas entre chsbrkr.dll y el separador de palabras predeterminado en inglés, pero hasta ahora no me ha causado ningún problema. Sería fantástico si hubiera una manera de aplicar el separador de palabras personalizado a propiedades administradas específicas (Ruta, en este caso), pero no sé si esto es posible. Hay una columna con un nombre prometedor en la tabla MSSManagedProperties de la base de datos llamada "WordBreakerOverride", pero no sé cuál es su propósito.

NOTA:En SharePoint 2010, las propiedades administradas aparentemente tienen una configuración adicional llamada SplitStringCharacters, que bien puede hacer que esta solución quede obsoleta.

información relacionada