2012-01-17 29 views
5

Estoy trabajando con Solr y me gustaría saber si es posible tener una cláusula LIKE en la consulta. Por ejemplo, quiero saber todas las organizaciones con "Nueva York" en el título. En SQL, esto se escribiría como Name LIKE 'New York%'.Solr Query con la Cláusula LIKE

Mi pregunta - ¿cómo se escribe una consulta LIKE en Solr?

Estoy usando la biblioteca de SolrNet, si eso hace la diferencia.

+0

puede comprobar http://stackoverflow.com/questions/3088401/substring-matches-within-solr – naresh

Respuesta

6

Solo busca "Nueva York", pero primero necesita configurar correctamente el analizador de su campo. Por ejemplo, es posible que desee comenzar con un tipo de campo como text_general como se define en el default Solr schema. Este tipo de campo se convertirá en tokenize en espacios en blanco y otros separadores de palabras comunes, luego aplicará un filtro de palabras vacías y luego minúsculas para hacer que las búsquedas no distingan entre mayúsculas y minúsculas.

Más información sobre analyzers in the Solr wiki.

+0

Tengo copy paste text_general de collection1 schema.xml por defecto a mi proyecto pero la búsqueda no funcionó. Estoy tratando de buscar "caliente" en una cuerda "¿Está caliente en Dubai?" –

+0

si lo analizo en Solr admin, funciona allí pero si busco en Admin> Query no lo hice –

6

Si está utilizando solr 3.1 o posterior, eche un vistazo al Extended DisMax Query Parser, que admite consultas con comodines. Puede habilitarlo usando <str name="defType">edismax</str> en la configuración del controlador de solicitudes.

Luego puede usar una consulta como title:New York* con el mismo comportamiento que una consulta con cláusula like. La principal diferencia entre mi respuesta y la aceptada es que incluso puedes buscar fragmentos de palabras usando comodines. Por ejemplo, New Yorkers coincidiría en este caso. Desafortunadamente, podría tener problemas con las consultas sensibles a las mayúsculas y minúsculas, incluso si está utilizando un LowerCaseFilterFactory. Eche un vistazo a here para saber más. La mayoría de esos problemas se solucionarán con la versión Solr 3.6 ya que se solucionó el problema SOLR-2438.

Cuestiones relacionadas