Estamos utilizando Lucene para la búsqueda de texto como parte del sitecore. ¿Hay algún método para ignorar las palabras de detención (como a, an, the ...) en la búsqueda del sitecore?detener palabras en el sitio
Respuesta
De forma predeterminada, Sitecore utiliza el analizador estándar Lucene - Lucene.Net.Analysis.Standard.StandardAnalyzer
. Puede ver que esto se define en el elemento /configuration/sitecore/search/analyzer
del archivo web.config. Uno de los constructores de la clase StandardAnalyzer
acepta la matriz de cadenas que considerará detener palabras. Por defecto se utiliza la lista codificada de palabras funcionales que incluyen:
"un", "una", "y", "son", "como", "a", "ser", "pero "," por "," para "," si "," en ", " en "," es "," ello "," no "," no "," de ", " en "," o "," such "," that "," the ", " their "," then "," there "," these ", " ellos "," this "," to "," was "," will " ", 'con'
Si desea anular este comportamiento, creo que debe heredar StandardAnalyzer
y anular su constructor por defecto para tomar la parada w ords de otra fuente en lugar de la matriz codificada. Tienes varias opciones, incluso leerlas desde un archivo de texto. No olvide reemplazar la clase estándar con la suya en web.config.
Vea otros constructores de la clase StandardAnalyzer
para más detalles. .NET Reflector es tu amigo aquí.
Gracias .. si puedes compartir el corazón del código ... – rahul
¿Qué quieres decir? El código que menciono en la respuesta anterior se coloca en Lucene.Net.dll (en la carpeta Sitecore/bin). Puede explorar esta biblioteca de terceros con .NET Reflector. Lo que propongo hacer en su caso es crear una nueva clase, heredarla de StandardAnalyzer y hacer que el constructor predeterminado busque las palabras de detención de otra manera (de la manera que elija). Hay ejemplos de esto en el código de otros constructores de la clase StandardAnalyzer. –
BTW, Alex Shyba acaba de publicar una increíble publicación de blog resumen sobre la búsqueda con Sitecore & Lucene: http://sitecoreblog.alexshyba.com/2011/02/8-reasons-to-use-new-search-in-sitecore. html. Esta publicación también está llena de enlaces útiles a varios recursos sobre el tema. ¡Asegúrate de verificarlo antes de avanzar en esta área! –
Un ejemplo de Yans mensaje:
public class CaseAnalyzer : Lucene.Net.Analysis.Standard.StandardAnalyzer
{
private static Hashtable stopWords = new Hashtable(); //{{"by","by"}}; <-- Makes "by" a stopword that will not be matched in analyzer
public CaseAnalyzer() : base(Lucene.Net.Util.Version.LUCENE_29, stopWords)
{
}
}
esto debe ser registrado en el web.config bajo
/configuration/sitecore/search/analyzer
un ejemplo del registro analizador de
<caseanalyzer type="EBF.Business.Search.Analyzers.CaseAnalyzer, EBF.Business, Version=1.0.0.0, Culture=neutral"/>
Por último se solo necesita registrar su analizador en la configuración de búsqueda como thi s
<Analyzer ref="search/caseanalyzer" />
- 1. Detener el ajuste de palabras en html
- 2. Detener la división de palabras entre palabras
- 3. Lista de palabras "Detener palabras" para inglés?
- 4. palabras acentuadas en el espaciado de separación entre temas del correo electrónico: ¿cómo puedo detener esto?
- 5. Detener a cualquiera al ver mi sitio con un IFrame
- 6. Detener el hilo en python3
- 7. detener el servicio en android
- 8. Detener el spam sin captcha
- 9. Cómo detener el controlador?
- 10. Cómo detener el autostart de redis-server
- 11. Cómo detener gunicorn_django en virtualenv?
- 12. ¿Cómo detener el temporizador en android?
- 13. Cómo detener el hilo asynctask en android?
- 14. ¿Cómo detener el proceso 'ininterrumpible' en Linux?
- 15. Detener el reactor retorcido en una condición
- 16. Detener el evento de depuración en C#
- 17. cómo detener el hilo ASyncTask en android
- 18. ¿Cómo detener el servidor mongodb en Windows?
- 19. detener el desplazamiento horizontal en JTextArea
- 20. ¿Cómo detener el sonido en MATLAB?
- 21. Detener el funcionamiento actual en Visual Studio
- 22. Detener CABasicAnimation en el punto específico
- 23. ¿Cómo detener el sondeo en SignalR?
- 24. La adición de nuevas palabras macros movimiento sitio limítrofe en vim
- 25. API's en el sitio web
- 26. Contando el número de palabras en C#
- 27. Detener la votación de los usuarios varias veces en un sitio web
- 28. Problemas para detener el apio
- 29. Detener JPopupMenu robando el foco
- 30. ¿Cómo detener el evento NStimer?
¿Cuál es el caso de uso de esto? Si busca ** el gato en el sombrero **, ¿realmente quiere buscar como ** sombrero de gato **? ¿O quiere decir que los filtra en los resultados? –