Pregunta

Estoy construyendo una pequeña función de búsqueda para mi sitio. Me estoy tomando mi consulta del usuario, derivado de las palabras clave y, a continuación, realice una búsqueda de texto completo de MySQL en contra de las palabras clave de tallo.

El problema es que MySQL es el tratamiento de los tallos como literal. Aquí es el proceso que está ocurriendo:

  1. usuario busca una palabra como "pelotas"
  2. mi algoritmo de división (Porter Stemmer) gira "pelotas" en "basebal"
  3. texto completo no se encontraron coincidencias "basebal", a pesar de que no debe haber coincidencias para "béisbol" y "pelotas"

¿Cómo puedo hacer el equivalente de LIKE '% basebal' con el texto completo?

EDIT:

Aquí está mi consulta actual:

SELECT MATCH (`title`,`body`) AGAINST ('basebal') AS `relevance`,`id` FROM `blogs` WHERE MATCH (`title`,`body`) AGAINST ('basebal') ORDER BY `relevance` DESC
¿Fue útil?

Solución

Creo que va a trabajar con un asterisco al final: basebal*. Ver el operador * en esta página para obtener más información.

Otros consejos

ver este enlace .. Stemming no se instala por defecto en MySQL, pero se puede instalar a su auto ..

http://oksoft.blogspot.com/2009/ 05 / derivados-palabras-en-mysql.html

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