2010-05-24 11 views
6

Estoy implementando la funcionalidad de búsqueda de texto completo en my rap website, y estoy teniendo problemas con los nombres de los rapero y las canciones.Búsqueda de texto completo para nombres de rapero irregulares con Solr

Por ejemplo, alguien podría querer buscar el rapero "Cam'ron" con la consulta "camron" (omitiendo el apóstrofo de palabra intermedia). Del mismo modo, alguien podría buscar la canción "3 Peat" con la consulta "3peat".

"The Notorious B.I.G." es un caso un tanto extraño: "The Notorious BIG" y "The Notorious B.I.G." ambos funcionan (supongo que porque el solr.StandardFilterFactory elimina los puntos de los acrónimos?), pero "The Notorious B.I.G" (es decir, menos el punto final) no lo hace.

Idealmente, todas las variaciones razonables de estos nombres deberían funcionar. Supongo que la respuesta tiene algo que ver con el solr.WordDelimiterFilterFactory, pero no estoy seguro.

Además, estoy usando Sunspot with Rails si es relevante.

Respuesta

10

Sí, tienes razón. Necesita configurar WordDelimiterFilterFactory correctamente. Intente habilitar todas las propiedades y no olvide habilitar la propiedad preserveOriginal, que también guardará sus términos originales.

generateWordparts - Hará desde B.I.G. términos - B I G

generateNumberParts - hará de 3Peat términos - 3 Turba

catenateWords - harán de B.I.G. términos - BIG

catenateNumbers - harán de Rapper 802.11 términos - Rapper 80211

catenateAll - hará de rapero-802.11 plazo - Rapper80211

splitOnCaseCh ange - hará a partir de gangsters términos - Gan Gs Ta

preserveOriginal - salvará También término original. De Rapper-802.11RuuLlZ hará - Rapper-802.11RuuLlZ.

+2

Un gran consejo, gracias. Agregué lo siguiente a 'schema.xml':' '. Esto parece resolver todo excepto el caso "B.I.G." ¿Algunas ideas? –

+0

Puede deberse a StandardTokenizer. Yo lo reemplazaría con WhitespaceTokenizer en su lugar.Para analizar cómo funcionan los analizadores, puede usar "Análisis" en su solr si tiene una interfaz web para ello. Ahí puede ver, qué analizador está transformando su texto y cuál es el resultado de su trabajo. – Yurish

Cuestiones relacionadas