Scopo: La popolare suite di database open source MySQL è la spina dorsale di una vasta maggioranza di sistemi di tipo lampada o piuttosto di sistema che richiede web e database di Access. Un esempio è MediaWiki . Ora MediaWiki ha un ottimo motore di ricerca predefinito tra ricerca full-text. Tuttavia, l'altro giorno, qualcuno mi ha informato che non riescono a trovare / individuare articoli Wiki utilizzando ricerca MediaWiki che avevano creato. Ero abbastanza perplesso con questo e ho deciso di dargli una prova me stesso e sì ho trovato gli stessi problemi.

Problema Set-up

Quindi, prima di iniziare ad esaminare la soluzione, è necessario che si capisce qual è il problema reale. Quindi diciamo che è stata creata una pagina MediaWiki con il titolo "RJ-45 Ethernet". Ora diciamo che qualche giorno dopo si desidera cercare il tuo articolo che avete appena creato. Così si va alla tua casella di ricerca MediaWiki e tipo, "RJ-45" ​​e si scopre che restituisce i risultati della ricerca "zero" o meglio, viene visualizzato il messaggio "Nessun titolo pagina partite". Si potrebbe pensare che ci sia qualcosa di sbagliato con MediaWiki motore, ma il vero problema è con la configurazione di MySQL.

E vediamo come risolvere questo ...

Fase 1: MySQL accesso

Assicuratevi di avere "root" l'accesso al database MySQL in esecuzione su un sistema Debian che ospita il tuo MediaWiki anche.

Fase 2: Controllare il valore

Funzionalità di ricerca full-text di MediaWiki usa capacità di indicizzazione di MySQL. Per impostazione predefinita, gli indici MySQL solo "quattro o più" personaggi e questo valore viene memorizzato in una variabile di sistema di MySQL chiamato "ft_min_word_len". Quindi, controllare prima il valore di questa variabile sul sistema:

# mysql -u root -p
Enter Password:

# mysql> SHOW VARIABLES like 'ft_min_word_len';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| ft_min_word_len | 4 |
+-----------------+-----------+
1 row in set (0.00 sec)

Come è possibile il valore di default è "4" e, quindi, MediaWiki è in grado di cercare il tuo articolo.

Fase 3: Modificare il valore

Modificare il file di configurazione di MySQL:

# nano /etc/mysql/my.cnf

e aggiungere la seguente riga:

ft_min_word_len=3

nella sezione seguente:

[mysqld]

nel file

Quindi, in pratica dopo aver effettuato il cambiamento, dovrebbe essere simile a questa:

[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking
ft_min_word_len=3

Salvare e chiudere il file.

Fase 4: Riavviare il database MySQL

Ora, al fine per la modifica di cui sopra per prendere effetti, abbiamo bisogno di riavviare il database MySQL:

# /etc/init.d/mysql restart

Fase 5: Ricostruire la tabella indice

Poi abbiamo bisogno di ricostruire il database di MediaWiki tabella indice.

Dal prompt di MySQL:

mysql> show databases;

e vedere il nome del vostro database MySQL MediaWiki che si era creato durante l'installazione di MediaWiki . Diciamo che il nome del database è "wikidb".

mysql> use wikidb;
mysql> REPAIR TABLE searchindex QUICK;
mysql> quit

Fase 6: Ora, cercare l'articolo di nuovo

Ora vai a MediaWiki ricerca sul web-page e cercare lo stesso articolo, utilizzando le parole "RJ-45" ​​e magicamente il risultato della ricerca sarà trovare il tuo articolo che non ha fatto prima.

Passaggio 7: Verificare le modifiche (opzionale)

Se si continua ad avere difficoltà a raggiungere i risultati di ricerca verificare che le modifiche (al punto 3) erano in vigore:

# mysql> SHOW VARIABLES like 'ft_min_word_len';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| ft_min_word_len | 3 |
+-----------------+-----------+
1 row in set (0.00 sec)

Si dovrebbe leggere tutte le regole impostate nel passo 3.

Tutto qui.

Ricerca felice!

Be Sociable, Share!