¿Cómo puedo modificar MySQL para acomodar esto?
Tendrás que cambiar la idea de MySQL de lo que es una palabra.
En primer lugar, la longitud mínima de palabra predeterminada es 4. Esto significa que ningún término de búsqueda que contenga solo palabras de < 4 letras alguna vez coincidirá, ya sea 'C++' o 'cpp'. Puede configurar esto usando la opción de configuración ft_min_word_len, por ej. en su my.cfg:
[mysqld]
ft_min_word_len=3
(continuación arranque/parada de MYSQLD y reconstruir los índices de texto completo.)
En segundo lugar, ‘+’ no se considera una letra por MySQL. Puede escribir una letra, pero eso significa que no podrá buscar la palabra 'pez' en la cadena 'fish + chips', por lo que se requiere cierto cuidado. Y no es trivial: requiere recompilar MySQL o piratear un juego de caracteres existente. Consulte la sección que comienza con "Si desea cambiar el conjunto de caracteres que se consideran caracteres de palabras ..." en section 11.8.6 del documento.
escapar el carácter + durante el proceso de introducción de los datos de mi como algo parecido a "__plus" y luego modificando mi búsqueda para acomodar
Sí, algo así como que es una solución común: usted puede mantener su datos 'reales' (sin el escape) en una tabla primaria y definitiva, generalmente usando InnoDB para el cumplimiento de ACID. Luego se puede agregar una tabla auxiliar MyISAM, que contiene solo las palabras mutiladas para el cebo de búsqueda de texto completo. También puede hacer una forma limitada de derivación utilizando este enfoque.
Otra posibilidad es detectar búsquedas que MySQL no puede hacer, como las que tienen solo palabras cortas o caracteres inusuales, y recurrir a una búsqueda LIKE o REGEXP simple pero lenta para esas búsquedas solamente. En este caso, probablemente también desee eliminar el archivo bloqueado configurando ft_stopword_file en una cadena vacía, ya que no es práctico recoger todo en eso como especial.
¿Qué diablos es una búsqueda booleana de texto completo? Suena terriblemente como si hubieras inventado esa palabra. Además, tu pregunta es muy vaga. Debe proporcionar una mejor descripción de su problema, lo que está tratando de hacer. De lo contrario, no podemos ayudarte. –
@John: Estás siendo muy duro. Tuve que abstenerme de vincularme a lmgtfy, así que aquí hay una explicación de MySQL: http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html –
@A. Rex - Soy malvado (en cierto sentido) mi punto de vista es duro pero la pregunta es deficiente en cuanto a cómo harías una buena pregunta. Como tal, nosotros (personas desbordadas de pila) no podemos proporcionar una buena respuesta basada en información insuficiente. –