query near examples array search solr proximity

search - examples - solr near



Solr-Búsqueda de proximidad utilizando frases (3)

Utilizo la búsqueda de proximidad de Solr con bastante frecuencia para buscar palabras dentro de un rango especifico entre sí, como por ejemplo

"Government Spending" ~2

Me preguntaba si hay alguna manera de realizar una búsqueda de proximidad usando una frase y una palabra o dos frases. es posible? Si es así, ¿cuál es la sintaxis?

Gracias en Advance Ruth


Esto parece ser "algo" factible. Considera este texto:

This is more about traffic between Solr servers themselves

"más tráfico entre solr" ~ 2

"más sobre entre solr" ~ 2

Incluso si cambias el orden, funciona:

"más sobre solr entre" ~ 2 "~ 2

Pero demasiado lejos y deja de funcionar:

"más sobre servidores en sí" ~ 2

Creo que si eso no funciona, probablemente no sea DEMASIADO difícil hacer un controlador de solicitudes personalizado que haga esto. Creo que podría necesitar definir una nueva sintaxis, tal vez algo así como ("phrase one" "phrase two") ~2 . Yo diría que si estás cortando y creas una consulta de Lucene donde hay una ficha de solo "frase uno" y otra de "frase dos" que tienen cierta proximidad, creo que funcionará. (por supuesto, tendrá que realizar la llamada Java de lucene, no puede simplemente entregar la consulta (lea este http://lucene.apache.org/java/2_2_0/api/index.html )).


He descubierto una forma de realizar una búsqueda de proximidad de Solr utilizando más de una palabra o frases, ver debajo.

p.ej. con 3 palabras:

"(palabra1) (palabra2) (palabra3)" ~ 10

p.ej. con 2 frases: (tenga en cuenta que la doble cita debe ser escapada)

"(/" phrase1 / ") (/" phrase2 / ")" ~ 10


Desde Solr 4 es posible con SurroundQueryParser .

Por ejemplo, para consultar donde "frase dos" sigue a "frase uno" no más de 3 palabras después:

3W(phrase W one, phrase W two)

Para consultar "frase dos" en proximidad de 5 palabras de "frase uno":

5N(phrase W one, phrase W two)