2010-06-02 26 views
11

utilizo búsqueda de proximidad de Solr muy a menudo para buscar palabras dentro de un rango specifeid el uno del otro, al igual queSolr - Proximidad de la búsqueda usando frases

"Government Spending" ~2 

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

Gracias de antemano Ruth

Respuesta

14

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

This is more about traffic between Solr servers themselves 

"more traffic between solr" ~2

"more about between solr" ~2

aunque se cambie el orden funciona:

"more about solr between" ~2" ~2

Pero demasiado separados y deja de funcionar:

"more about servers themselves" ~2

Creo que si eso no funciona, probablemente no sea DEMASIADO difícil hacer un controlador de solicitudes personalizado que lo haga. 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 hacer realmente la llamada Java de lucene, no puede simplemente entregar la consulta (lea esto http://lucene.apache.org/java/2_2_0/api/index.html)).

+0

Eso ayudará, gracias – Ruth

+0

np. ¡Buena suerte! Sería grandioso saber si esto funcionó. – mlathe

10

Fuera de la caja que he descubierto una manera de realizar una búsqueda de proximidad Solr usando más de una palabra o frases, véase más adelante

por ejemplo. con 3 palabras:

"(word1) (word2) (word3)" ~ 10

por ejemplo. con 2 frases: (nota las comillas necesita ser escapado)

"(\" locución1 \ ") (\" locución2 \ ")" ~ 10

6

Desde Solr 4 es posible con SurroundQueryParser.

E.g. para consultar donde "la frase dos" sigue "frase de uno" a no más de 3 palabras después:

3W(phrase W one, phrase W two) 

Para consultar "frase dos" en las proximidades de 5 palabras de "frase de uno":

5N(phrase W one, phrase W two) 
Cuestiones relacionadas