Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Ayuda Problema con Mysql y fulltext (https://www.clubdelphi.com/foros/showthread.php?t=43020)

radije 28-04-2007 21:00:52

Ayuda Problema con Mysql y fulltext
 
Primero de todo saludaros a todos porque soy nuevo.


Bien tengo un problemon, el caso es que estoy haciendo un proyecto, y tengo que hacer un buscador y quiero usar fulltext. No deberia de ser muy dificil verdad. El problema es el siguiente:

Tengo esta tabla:

Tabla oferta (Tipo MyIsam)


idofer int(10) si Null
Nombre Varchar(255) si
Codigo int(7) si
Puesto Varchar(100) si
Categoria Varchar(50) si
Subcategoria Varchar(50) si
Descripcion Varchar(500) si
Inicio date si
Contrato Varchar(50) si
Laboral Varchar(100) si
Sueldo Varchar(10) si
Exp Varchar(2) si


Tengo definidos dos indice:

PRIMARY idofer
oferta_FK1 Codigo

El cotejamiento de la tabla es: ucs2_spanish2_ci

Bien pues ahora en mi proyecto, tengo que crear un buscador y he pensado utilizar fulltext. Lo primero que hago es actulizar la tabla lo hago asi:

CREATE FULLTEXT INDEX busqueda ON oferta(
Subcategoria,
Contrato,
Laboral,
Sueldo,
Exp
)


cuando lo ejecuto me sale:

#1283 - Colum 'Subcategoria' cannot be part of FULLTEXT index, he provado quitar subcategoria de la consulta y nada entonces me dice lo mismo pero con contrato y asi succesivamente. He provado a crear tablas de prueba con un par de campos y nada no me deja crear fulltext. He provado utilizar otra sintaxi para la consulta y nada.

No entiendo el porque no me deja. Tengo el phpMyAdmin 2.6.4-pl4 y el MySQL 5.0.16-nt ejecutandose en localhost.


Alguna solucion?? Si no me podriais decir como hacer la consulta con el like, se que no es lomismo pero bueno para ir tirando muchisimas gracias a todos.

dec 28-04-2007 21:19:33

Hola,

Yo no entiendo mucho de esto pero pareciera que no puede crearse un índice "fulltext" con campos de tipo "VARCHAR". Si no me equivoco tal vez habría que utilizar campos de tipo "TEXT", y, no sé hasta qué punto también podrían utilizarse campos del tipo "TINYTEXT", "MEDIUMTEXT" y "LONGTEXT"...

radije 28-04-2007 22:37:03

Cita:

Empezado por dec
Hola,

Yo no entiendo mucho de esto pero pareciera que no puede crearse un índice "fulltext" con campos de tipo "VARCHAR". Si no me equivoco tal vez habría que utilizar campos de tipo "TEXT", y, no sé hasta qué punto también podrían utilizarse campos del tipo "TINYTEXT", "MEDIUMTEXT" y "LONGTEXT"...

Con ninguno de esos campos que mencionas me ha servido tampoco, la verdad es que es muy raro deberia funcionar.

dec 28-04-2007 22:47:21

Hola,

Pues vamos a remitirnos a la documentación de MySQL al respecto, puesto que además según leo ya de entrada los índices "FULLTEXT" pueden crearse en campos de los tipos CHAR, VARCHAR o TEXT.

fulanito 04-05-2007 01:47:49

Hola, yo también soy nuevo.
También tuve ese "problema" al principio. Resulta que al introducir el código sql para generar el FULLTEXT has de introducir los nombres de las columnas entre comillas simples o, si te fijas, al introducir el comando para generar el FULLTEXT a la derecha del PHP-MyAdmin tienes las columnas de la tabla en cuestión... puedes añadirlos seleccionándolos desde ahí. Espero haberte ayudado.
Ahora yo tengo un problema, todo funciona bien, incluso el MATCH... AGAINST, salvo que todas las columnas que utilizo en el FULLTEXT son Varchar salvo una que es TEXT y ésta última, el TEXT, siempre me da error cuando intento meterla en la búsqueda. No tiene sentido!!, se supone que sirve tanto para Varchar como para TEXT. Si introduzco la columna TEXT dentro de MATCH no funciona, sin embargo si no la utilizo y la quito del FULLTEXT sí funciona, pero yo necesito que haga la búsqueda también en esa columna TEXT y en teoría debería hacerla.
AYUDA!!!!!, por favor.

fulanito 04-05-2007 20:34:57

Arreglado, al final lo fui haciendo poco a poco dándole directamente las órdenes desde PHP-MyAdmin y funciona, he conseguido hacerlo y que me ordene los resultados por "porcentajes" de importancia. Además le he metido otro campo de otra tabla para que me lo coja también comparando en la misma sentencia y funciona... o soy un genio o tengo una suerte monumental... más bien lo último ;-D


La franja horaria es GMT +2. Ahora son las 03:09:44.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi