Pregunta

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 ~ sólo lo hace coincidencias parciales en términos de una sola palabra y se comporta como un partido de proximidad para frases.

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

¿Fue útil?

Solución

Lucene 3.0 tiene ComplexPhraseQueryParser que los apoyos difusa frase de consulta. Esto es en el paquete de contribución.

Otros consejos

No hay soporte directo para una frase difusa, pero se puede simular de forma explícita por enumerar los términos difusos y luego añadirlas a una MultiPhraseQuery . La consulta resultante se vería así:

<MultiPhraseQuery: "grand (prarie prairie)">

Encontramos este a través de Google y sintió soluciones en las que no es lo que buscaba. En mi caso, la solución era simplemente repetir la secuencia de búsqueda en contra de 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 para generar manual de consulta como:

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

Tal vez sólo sea por encima de lo que las consultas se acerca, sin embargo parece enlaces muertos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top