HOWTO: Ottimizzazione del database MySQL per i risultati di ricerca di indicizzazione in MediaWiki
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!













Lascia un Commento