Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe und besinnliche Weihnachten!

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Suchfunktion soll standardmäßig mit AND statt OR suchen
#1
Hallo,

ich habe gerade mein altes mybb von 1.0.2 auf 1.2.2 geupdatet. Der Grund war die verbesserte Suchfunktion, da nun das Suchen nach 2 Wörtern gleichzeitig möglich ist. Was ich jedeoch festgestellt habe ist, dass standardmäßig mit OR statt AND gesucht wird.
Wie kann ich machen, dass man dieses AND zwischen den Suchbegriffen nicht mehr eingeben muss, sondern er automatisch mit AND arbeitet?

Ich bedanke mir für eure Hilfe.
#2
Quick and dirty (nicht getestet): Öffne die Datei search.php und suche nach:
PHP-Code:
    $search_data = array(
        
"keywords" => $mybb->input['keywords'],
        
"author" => $mybb->input['author'],
        
"postthread" => $mybb->input['postthread'],
        
"matchusername" => $mybb->input['matchusername'],
        
"postdate" => $mybb->input['postdate'],
        
"pddir" => $mybb->input['pddir'],
        
"forums" => $mybb->input['forums'],
        
"findthreadst" => $mybb->input['findthreadst'],
        
"numreplies" => $mybb->input['numreplies']
    ); 
Darüber einfügen:
PHP-Code:
$mybb->input['keywords'] = str_replace(" "" AND "trim($mybb->input['keywords'])); 

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#3
Danke funktioniert. Mybb sucht jetzt immer mit AND.
OR ist damit nicht möglich, sollte ich es brauchen, kann ich ja einfach die Zeile auskommentieren.

EDIT: Ganz so funktioniert es leider doch nicht. Suche ich nämlich jetzt nach Wörtern in Anführungszeichen, also zusammengesetzten Ausdrücken wie "damit nicht möglich", findet er mit eingefügter Zeile nichts mehr. Ich muss es erst auskommentieren.

Wie funktioniert die Suche eigentlich hier im Board? Gebe ich (in dieser Suche ohne die Anführungszeichen) "php mysql" ein, findet er einen einzigen Thread. Verbinde ich die Wörter mit AND, findet er 14 Suchergebnisseiten, verbinde ich die Wörter mit OR, findet er 128 Suchergebnisseiten. Wieso sucht das Board hier nicht standardmäßig mit OR? So wie ich das sehe, sucht das Board hier standardmäßig nach zusammengesetzten Ausdrücken, die Wörter php mysql müssen also direkt hintereinander stehen und das scheint nur in einem Thread der Fall zu sein.
#4
Tored schrieb:EDIT: Ganz so funktioniert es leider doch nicht. Suche ich nämlich jetzt nach Wörtern in Anführungszeichen, also zusammengesetzten Ausdrücken wie "damit nicht möglich", findet er mit eingefügter Zeile nichts mehr. Ich muss es erst auskommentieren.
Ersetze die eingefügte Zeile durch diesen Code:
PHP-Code:
<?php
$mybb
->input['keywords'] = str_replace(" "" AND "trim($mybb->input['keywords']));

function 
make_spaces($val) {
    $val "\"".str_replace(" AND"" "$val)."\"";
    return $val;
}

$mybb->input['keywords'] = preg_replace_callback('#"(.*)"#Uis'create_function('$matches''return make_spaces($matches[1]);'), $mybb->input['keywords']);
?>
Tored schrieb:Wie funktioniert die Suche eigentlich hier im Board? Gebe ich (in dieser Suche ohne die Anführungszeichen) "php mysql" ein, findet er einen einzigen Thread. Verbinde ich die Wörter mit AND, findet er 14 Suchergebnisseiten, verbinde ich die Wörter mit OR, findet er 128 Suchergebnisseiten. Wieso sucht das Board hier nicht standardmäßig mit OR? So wie ich das sehe, sucht das Board hier standardmäßig nach zusammengesetzten Ausdrücken, die Wörter php mysql müssen also direkt hintereinander stehen und das scheint nur in einem Thread der Fall zu sein.
Die Suche hier im Forum wurde nicht modifiziert, somit sollte sich die Suchfunktion wie in allen anderen Foren auch verhalten, die die Volltextsuche einsetzen.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#5
Danke für deine Hilfe. Dieser Code funktioniert schon wesentlich besser, allerdings funktioniert OR jetzt immer noch nicht richtig.

Zitat:Die Suche hier im Forum wurde nicht modifiziert, somit sollte sich die Suchfunktion wie in allen anderen Foren auch verhalten, die die Volltextsuche einsetzen.
Dann verstehe ich nicht ganz, wieso sich die Suche bei mir anders verhält.
#6
Füge unter dem neuen Code noch diese Zeile ein:
PHP-Code:
$mybb->input['keywords'] = str_replace("AND OR AND""OR"trim($mybb->input['keywords'])); 
Der ganze Code ist nicht schön, sollte aber seinen Zweck erfüllen.

Dass deine Suche anders reagiert könnte z.B. an unterschiedlichen MySQL-Versionen liegen. Ich kann dir 100%ig versichern, dass an der Suche hier nichts geändert wurde.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#7
Vielen Dank jetzt scheint es vollständig zu funktionieren.
Ich verwende übringes MySQL 5.0.18


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  [MyBB] Problem mit dem Umlaut ü in der Suchfunktion Plexxart 3 4.257 06.04.2009, 11:53
Letzter Beitrag: StefanT
  Standardmäßig suchen in Beiträgen Basteltrulla 16 5.717 26.02.2007, 09:10
Letzter Beitrag: Basteltrulla
Question Foren-Statistiken sollen standardmäßig nicht angezeigt werden querschlaeger 10 5.271 21.12.2005, 03:17
Letzter Beitrag: querschlaeger