Pregunta

Tengo este campo de tallo:

<fieldtype name="textes" class="solr.TextField">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords-es.txt" enablePositionIncrements="true"/>
    <filter class="solr.SnowballPorterFilterFactory" language="Spanish" protected="protwords-es.txt"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
    <filter class="solr.SnowballPorterFilterFactory" language="Spanish" protected="protwords-es.txt"/>
  </analyzer>
</fieldtype>

El resultado esperado de la consulta de búsqueda alquileres (alquileres) sería un partido de alquiler (renta). Pero cuando voy a "análisis de campo" en el sitio de administración de Solr, y verifique un valor de índice de alquiler y un valor de consulta de alquileres, lo siguiente sucede:

  • Al indexar alquiler, se detiene en alquil.
  • Al consultar alquileres, se detiene en alquiler.

Entonces, el simple caso de buscar la forma plural de una palabra (alquileres) no coincidiría con su forma singular (alquiler).

No deberían tanto el índice como la consulta en el mismo tallo (ya sea alquiler o alquil)? ¿Es esto una limitación del algoritmo o un malentendido/configuración errónea de mi parte?

¿Fue útil?

Solución

Snowball Stemming es muy limitado ... obtendrías un mejor resultado al usar un diccionario (Hunspell Stemmer): http://wiki.apache.org/solr/hunspell

Otros consejos

Este enlace funciona correctamente para alquilares

http://www.molinolabs.com/lematizador.html#Qilereses

Utilizo Hunspell de OpenOffice y hace un trabajo excelente.

Mi ejemplo:

URL-Elastic/_analyze?analyzer=es_AR&text=alquileres

Y volver:

{
  tokens:
  [
    {
      token: "alquiler",
      start_offset: 0,
      end_offset: 10,
      type: "<ALPHANUM>",
      position: 1
    }
  ]

}

Enlace: https://www.openoffice.org/download/index.html

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