estoy usando SOLR junto con NGramTokenizerFactory para ayudar a crear fichas de búsqueda de subcadenas de palabrasBúsqueda de palabras cortas con SOLR
NGramTokenizer está configurado con una longitud mínima palabra de 3
Esto significa que puedo buscar p.ej "unb" y luego coincide con la palabra "increíble".
Sin embargo, tengo un problema con las palabras cortas como "I" y "in". Estos no están indexados por SOLR (sospecho que es debido a NGramTokenizer) y, por lo tanto, no puedo buscarlos.
No quiero reducir la longitud de palabra mínima a 1 o 2, ya que esto crea un gran índice de búsqueda. Pero me gustaría que SOLR incluya palabras completas cuya longitud ya está por debajo de este mínimo.
¿Cómo puedo hacer eso?
/Carsten
Gracias por su sugerencia. He corrido el análisis contra dos palabras: un caso normal - "jeudan" y la palabra de 1 letra "j". Aquí están los resultados http://pastie.org/1000520 Como puede ver, ES realmente el NGramTokenizer el que está filtrando la palabra de 1 letra, o en este el EdgeNGramTokenizer, pero lo he probado con ambos. Podría intentar lo que sugieras, pero preferiría que Solr hiciera todo el trabajo de texto. Hago muchas búsquedas específicas de campo, por lo que su sugerencia resultaría en la necesidad de reescribir esas consultas para buscar en dos campos de texto en lugar de uno. Posible pero contra-intuitivo. –
Considere que es típico en solr tener un campo de agregación donde realiza la consulta, y luego una serie de campos con diferentes tipos y analizador. Simplemente use la etiqueta copyfield para copiar todo su campo fuente al destino. No tiene que cambiar sus consultas. –
Bueno, tu respuesta en realidad resolvió este y otros problemas que tuve que enfrentar. No sabía sobre la herramienta de análisis. Terminé probando algunos otros filtros y tokenizadores a través del analizador, y terminé usando PhoneticFilter tanto en el índice como en la parte de consulta. Muy limpio, ¡muchas gracias! –