Mysql
 sql >> Database >  >> RDS >> Mysql

Come consentire la ricerca full-text con trattini nella query di ricerca

Da qui http://dev.mysql.com/doc /refman/5.0/en/fulltext-search.html

Una soluzione per trovare una parola con trattini o trattini è usare la RICERCA COMPLETA DEL TESTO IN MODALITÀ BOOLEANA e racchiudere la parola con il trattino/trattino tra virgolette.

Oppure da qui http://bugs.mysql.com/bug.php?id=2095

C'è un'altra soluzione. È stato recentemente aggiunto al manuale:"Modificare un file di set di caratteri:ciò non richiede ricompilazione. La macro true_word_char() utilizza una tabella "tipo di carattere" per distinguere lettere e numeri da altri caratteri. . È possibile modificare il contenuto in uno dei caratteri set XMLfiles per specificare che '-' è una "lettera". Quindi usa il set di caratteri specificato per i tuoi indici FULLTEXT."

Non l'ho provato da solo.

Modifica:ecco alcune altre informazioni aggiuntive da qui http:/ /dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

Una frase racchiusa tra virgolette ("") caratteri corrisponde solo alle righe che contengono la frase letteralmente, come è stata digitata. Il motore full-text divide la frase in parole ed esegue una ricerca nell'indice FULLTEXT per le parole. Prima di MySQL 5.0.3, il motore eseguiva una ricerca di sottostringa per la frase nei record trovati, quindi la corrispondenza deve includere caratteri non di parole nella frase.A partire da MySQL 5.0.3, i caratteri non di parole non devono essere abbinati esattamente:La ricerca di frasi richiede solo che le corrispondenze contengano esattamente le stesse parole della frase e nello stesso ordine. Ad esempio, "frase di prova" corrisponde a "frase di prova" in MySQL 5.0.3, ma non prima.

Se la frase non contiene parole presenti nell'indice, il risultato è vuoto. Ad esempio, se tutte le parole sono stopword o sono più brevi della lunghezza minima delle parole indicizzate, il risultato è vuoto.