Ciao, ho un problema con la funzione di ricerca, qualsiasi parola inserisca non mi restituisce NESSUN risultato.
Ho provato indice completo (va in timeout) indice personalizzato e anche l'altra opzione.
Cosa devo controllare?
Un link al sito farebbe comodo.
Quanto grosso è il forum? (numero di post)
Errori nel log?
www.basketforum.info
http://www.basketforum.info/smf/index.php?action=search2;params=eJwtzc0OwiAQBOB38eJlDi5La30aws821WAxlGpMeHjB9DbzJbtjw9uuXkI910s9VZd7UtAYQAzSYA01Qd2gCDyCBzCDFajhiCsmEIFUu92W9DE-PV9RirQvnXb3EF9MWuP3kJRLS1mi_IcPMuGeGwfZfBex2S-tu32e7Q_TRzZW;start=0
2: Division by zero
File: /home/bforum/public_html/basketforum.info/smf/Sources/Subs.php
Riga: 704
mmm...hai mod installati?
Era installato SMF Search Enhancement Mod ma l'ho disinstallato
Ed ora è tornata a funzionare?
No, continua a non funzionare. Ho provato anche a reinstallare il mod e non funziona ugualmente.
Il problema è che l'errore in sé è in una funzione "accessoria" che serve solo a creare la serie di pagine e che solamente accetta numeri provenienti da altre parti.
Quindi il problema è altrove, dove questi numeri vengono generati.
Ora, capire perché viene inviato uno 0 invece di un numero sensato è piuttosto difficile in questa condizione...
Prova ad allegare qui (usando la funzione allegati, non copia&incollandolo nel testo del messaggio) il file Search.php (directory Sources).
Il percorso esatto quale sarebbe? Non trovo nessun file search.php ne in sources che nelle sottodirectory
Il percorso è Sources.
E' all'interno di quella directory.
Ecco, ci sono riuscito
Porto su il topic perchè non sono riuscito a risolvere
Pardon...
mmm...com'è configurata la ricerca?
Indice, fulltext, altro?
Inizio a sospettare che il forum sia troppo grande per usare la ricerca interna... (quando ho guardato l'altra volta mi sa che ho perso uno zero nel numero di post, altrimenti l'avrei suggerito prima)
Con un milione e mezzo di messaggi è molto probabile che ci siano dei timeout durante la ricerca. Se sei su un VPS o server dedicato di qualche tipo, hai considerato l'utilizzo del motore esterno "Sphinx"?
Quote from: emanuele on June 25, 2013, 10:22:18 AM
Pardon...
mmm...com'è configurata la ricerca?
Indice, fulltext, altro?
Inizio a sospettare che il forum sia troppo grande per usare la ricerca interna... (quando ho guardato l'altra volta mi sa che ho perso uno zero nel numero di post, altrimenti l'avrei suggerito prima)
Con un milione e mezzo di messaggi è molto probabile che ci siano dei timeout durante la ricerca. Se sei su un VPS o server dedicato di qualche tipo, hai considerato l'utilizzo del motore esterno "Sphinx"?
Ho provato tutti i tipi di ricerca, a generare l'indice completo va in timeout, con quello parziale va in timeout dopo essere arrivato al 3% dopo varie ore.
Sono su un normale hosting condiviso.
timeout è strano.
Devo controllare il codice, mi puzza di bug...
A questo punto, direi che un indice è il minimo. Un "fulltext" index lo si può creare anche manualmente, quindi proviamo così: vai in phpMyAdmin, apri il database di SMF, quindi clicca in alto dove c'è scritto "SQL" e metti questo nel box:
ALTER TABLE {db_prefix}messages
DROP INDEX body;
ALTER TABLE {db_prefix}messages
ADD FULLTEXT body (body);
al post di {db_prefix} metti il prefisso che hanno le tue tabelle di SMF (solitamente è smf_) in modo che il nome della tabella sia simile a: "smf_messages".
E quindi clicca su "esegui" (o "vai", non ricordo di preciso).
Non vorrei che aver installato precedentemente quella mod possa avere danneggiato qualche file, come posso verificare che smf utilizzi la "vecchia" ricerca?
L'hai disinstallato?
Allora non è più presente. ;)
Se vuoi essere sicuro controlla che non esista ad esempio il file "DCSearch.php" in "Sources".
No, non c'è più. Però inizialmente la ricerca seppur male funzionava, ora restituisce solo il nulla.
Ho provato la quary SQL
Run SQL query/queries on database bforum_smf:
ALTER TABLE smf_messages
DROP INDEX body;
ALTER TABLE smf_messages
ADD FULLTEXT body (body);
mi restituisce:
Error
SQL query:
ALTER TABLE smf_messages DROP INDEX body;
MySQL said: Documentation
#1091 - Can't DROP 'body'; check that column/key exists
Ok, allora esegui solo:
ALTER TABLE smf_messages
ADD FULLTEXT body (body)
E' comparso LOADING
e poi dopo un paio di minuti
#2013 - Lost connection to MySQL server during query
Fischia...nemmeno phpmyadmin riesce a creare l'indice senza che mysql muoia...
L'unica speranza è che SMF riesca a creare un indice personalizzato...dai tuoi messaggi non son sicuro se ci hai già provato e se va in timeout anche questo (ma anche se andasse in timeout, dovrebbe essere possibile continuare...), consiglierei comunque di fare queste operazioni quando c'è poca gente in giro, così da ridurre la probabilità di problemi.
ETA: domani e dopo sono via, quindi non risponderò...
Non solo non funziona ma la tabella smf_log_search_words segnalava 10 milioni di operazioni (o qualcosa del genere) e hanno sospeso l'account per troppo carico sul server :o
Ora per sicurezza l'ho cancellata...
Allego il log che mi ha inviato il gestore
Mannaggia, credevo di aver risposto, ma invece mi deve essere rimasta aperta da qualche parte senza che postassi... :-[
Il log non dice molto (anzi proprio niente) riguardo la ricerca.
E' possibile che creando l'indice abbia eseguito una grande quantità di operazioni (in pratica va a leggere tutti i messaggi del forum, estrae le parole chiave e le inserisce nella tabella), però una volta che questa operazione è conclusa, non dovrebbe generare molto più carico del normale...anzi.
Devo fare qualche prova, purtroppo l'unico forum così grosso che ho a disposizione è un forum di test con messaggi generati casualmente, quindi la varietà di parole è limitata e la tabella generata sarà poco significativa.
Una cosa che potresti provare a fare è usare un backup, generare l'indice in locale e caricare la tabella dell'indice...magari perderesti qualche messaggio (tra il backup e l'upload), ma dovrebbe funzionare.
Se hai bisogno di una mano per l'operazione fammi sapere. ;)
Ah, una cosa: ovviamente i backup quando li fai li fai da phpmyadmin, vero?
Ho risolto anche questo problema, in pratica nel pannello di controllo nelle opzioni di ricerca due valori erano settati a 0 e 0, inserendo numeri interi funziona tutto senza problemi.