2010-04-06 10 views
5

estoy tratando de hacer una coincidencia parcial en la frase "Gran Prairie" (mal escrito deliberadamente) usando Apache Lucene. Parte de mi problema es que el operador ~ solo hace coincidencias difusas en términos de una sola palabra y se comporta como una coincidencia de proximidad para las frases.Lucene coincidencia parcial en lugar de frases Una palabra

¿Hay una manera de hacer una coincidencia parcial en una frase con Lucene?

Respuesta

2

No hay soporte directo para una frase difusa, pero puede simularla explícitamente enumerating the fuzzy terms y luego agregarlas a MultiPhraseQuery. La consulta resultante se vería así:

<MultiPhraseQuery: "grand (prarie prairie)"> 
+0

1. El camino a seguir – Yaroslav

+2

¿Podría elaborar un poco más sobre esto? No estoy usando Lucene directamente, sino a través de Solr. Es posible que tenga que pasarme la vida leyendo lucene en acción. No me importaría obtener una mejor comprensión de cómo los dos trabajan juntos y sentirse cómodos con él en un nivel más fundamental. Por ahora, en Solr, estoy lograr algo que es lo suficientemente eficaz como para mí usando el analizador solr.PhoneticFilterFactory. – Koobz

1

encontramos con este a través de Google y se sentían soluciones en las que no es lo que buscaba. En mi caso, la solución fue simplemente repetir la secuencia de búsqueda contra la API de Solr. Así por ejemplo, si yo estaba buscando: title_t para incluir la altura de "perro ~" y "gato ~", añadí algo de código manual para generar la consulta como:

((title_t:dog~) and (title_t:cat~)) 

Podría ser lo que por encima de las consultas son sobre, sin embargo, los enlaces parecen muertos.

+0

Eso es lo que necesitaba :) gracias – Oyeme

Cuestiones relacionadas