Suchwort Info wird nicht gefunden

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Nili76
Mitglied
Beiträge: 38
Registriert: 15.05.2007 22:29

Suchwort Info wird nicht gefunden

Beitrag von Nili76 »

Hallo zusammen,

ich habe kürzlich festgestellt, dass ich in meinem Forum (2.0.22) vieles suchen kann ( :wink: ), aber leider keine Themen oder Beiträge finde, wenn ich nach dem Wort Info suche.

Hat jemand einen Tip, wo ich da mal "suchen" könnte, damit dieses Wort gefunden wird?

Gruß
Nils
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

gibt es bei phpBB2 schon sowas wie einen Filter wenn das Wort zu oft vorkommt? eine Art BadWords-Liste (Soll eine Anregung sein)

Bei phpBB3 gibt es sowas. (solangsam habe ich phpBB3 drauf dafür vergesse ich phpBB2 :roll: )
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Hallo Nili76,

Schau mal ob in deiner language/lang_german/search_stopwords.txt

das Wort Info zu finden ist. Falls ja, dann..

> Eintrag löschen
> Rebuild Search Index

Falls nicht, hier gibt es eine Anleitung, wie man gewissermaßen steuern kann,
was ausgeschlossen wird (search_stopwords.txt ... @Boecki)

lg
4seven
Nili76
Mitglied
Beiträge: 38
Registriert: 15.05.2007 22:29

Beitrag von Nili76 »

Danke für die schnellen Antworten.

Leider steht das Wort nicht in der search_stopwords.txt
Ich bin aber mal die Tabelle search_wordlist durchgegangen...
Da steht das Wort info, aber als einziges Wort hat es bei word_common eine 1.

Ich danke aber jetzt schon mal, da mir die Antworten auf jeden Fall schon Anregungen gegeben haben, wo ich ansetzen könnte...

[Nachtrag]
Hab den Wert bei Common auf 0 gesetzt. Danach ein Rebuild search index gemacht. Der Wert wurde wieder auf 1 gesetzt.
[/Nachtrag]

Gruß
Nils
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

setze den wert mal wieder auf 0 ohne rebuild.
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Nili76
Mitglied
Beiträge: 38
Registriert: 15.05.2007 22:29

Beitrag von Nili76 »

Klappt auch nicht.... :cry:
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Ich weise nochmal auf den Link in meinem letzten Post hin :wink:

Weiterlesen ab..
Mit dieser Anleitung kann man es einstellen, das diese Liste auch benutzt wird.
Desweiteren zeigt ich Euch wie man das meistgenutzte Wort herausfinden kann. Und mit einem kleinen Script, kann man dann alle bisherigen Sucheinträge, die die Wörter von dieser Liste enthalten, entfernen.
Nili76
Mitglied
Beiträge: 38
Registriert: 15.05.2007 22:29

Beitrag von Nili76 »

Danke, aber hilft auch nicht weiter.

Mittlerweile habe ich die Zeile herausgefunden, in der mein geliebtes Wort Info bei word_common die 1 verpasst bekommt.

In der functions_search.php steht

Code: Alles auswählen

$sql = "SELECT m.word_id FROM " . SEARCH_MATCH_TABLE . " m, " . SEARCH_WORD_TABLE . " w WHERE w.word_text IN ($word_id_sql)  AND m.word_id = w.word_id GROUP BY m.word_id HAVING COUNT(m.word_id) > $common_threshold";
Wenn ich mal alles an Variablen umsetze sieht die Abfrage so aus:

Code: Alles auswählen

SELECT m.word_id FROM phpbb_search_wordmatch m, phpbb_search_wordlist w WHERE w.word_text IN ( 'info', 'nochwas', 'und ganz viele andere Wörter'...... ) AND m.word_id = w.word_id GROUP BY m.word_id HAVING COUNT(m.word_id) > 44
Ist vielleicht jetzt mehr eine Coding Sache, aber kann mir jemand sagen, was die Abfrage eigentlich. macht?

Ich verstehe das bisher so, dass die Word_Table mit der Match_Table verglichen wird. In $word_id_sql stehen 1000ende Wörter drin. unter anderem mein geliebtes Info Wort.
Wieso wird die ID dieses Wortes ausgegeben, während andere Wörter einfach liegen gelassen werden?

Kann es sein, dass alle Wörter, die nun über 44 Treffer ergeben ausgegeben werden?

Dann habe ich ja den Übeltäter gefunden, oder?
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Hallo Nili76,
Nili76 hat geschrieben:Kann es sein, dass alle Wörter, die nun über 44 Treffer ergeben ausgegeben werden?
Ja

Beim Rest bin ich mir noch nicht ganz klar drüber.


Noch eine Idee:

Ändere mal folgendes in der includes/functions_search.php

Suche

Code: Alles auswählen

$search_raw_words['text'] = split_words(clean_words('post', $post_text, $stopword_array, $synonym_array));
   $search_raw_words['title'] = split_words(clean_words('post', $post_title, $stopword_array, $synonym_array));
Ersetze mit

Code: Alles auswählen

   $search_raw_words['text'] = split_words(clean_words('post', $post_text, $stopwords_array, $synonym_array));
   $search_raw_words['title'] = split_words(clean_words('post', $post_title, $stopwords_array, $synonym_array)); 
Danach check nochmal im phpMyAdmin mit folgender SQL-Abfrage..

Code: Alles auswählen

SELECT ls.word_id, ls.word_text, COUNT(wm.word_id) as entries FROM `phpbb_search_wordlist` as ls LEFT JOIN `phpbb_search_wordmatch` as wm ON ls.word_id=wm.word_id GROUP BY wm.word_id ORDER BY entries DESC LIMIT 0,50
.. ob "Info" immer noch common > 1 ist

Falls ja, lösche das Wort aus der Liste + language/xxxxx/search_stopwords.txt nochmal checken > Rebuild Search Index

lg
4seven
Nili76
Mitglied
Beiträge: 38
Registriert: 15.05.2007 22:29

Beitrag von Nili76 »

Herlichen Dank,

nachdem ich gesehen habe, dass bei der SQL Abfrage "nur" ein paar Wörter auf 1 gesetzt wurden, habe ich mal gesucht, wo diese
44 denn herkommt ....

in der /admin/admin_db_maintenance.php steht die Zeile

Code: Alles auswählen

remove_common('single', 4/10, $word_array);
Nachdem ich mal ein nettes // davor gemacht habe, wird nun nach dem rebuild search index kein Wert auf 1 gesetzt.
Soll in diesem Fall auch so sein, da auch nach den Wörtern gesucht werden soll, die häufig aufreten.

Irgendwo wird aber nach einiger Zeit aus einer anderen Aktion her remove common gemacht und mein Info ist wieder 1. Aber das kann ich für mich so lösen, dass die ganze Funktion remove_common keinen Wert auf 1 setzt.

Ich danke für die ganzen Anregungen, da die mich zur Lösung geführt haben.

Gruß
Nils
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“