Heim  >  Fragen und Antworten  >  Hauptteil

PHP-Volltextsuchfunktion mit den Operatoren AND, OR und NOT

<p>Fragen für Anfänger: Ich versuche, eine Volltextsuche für eine Suchzeichenfolge mithilfe von PHP und Eloquent zu implementieren. </p> <pre class="brush:php;toolbar:false;">$searchstring = "+(Opferverdächtiger) +crime -covid"; $searchresult = RssItem::whereRaw("MATCH (description) AGAINST ('$searchstring' IN BOOLEAN MODE)")->get();</pre> <p>Ich möchte, dass meine Benutzer eine Suchzeichenfolge wie diese festlegen können: </p> <pre class="brush:php;toolbar:false;">$searchstring = "(Opfer ODER Verdächtiger) UND Verbrechen NICHT covid";</pre> <p>Gibt es eine einfache Möglichkeit, Benutzereingaben in eine boolesche Volltextsuchzeichenfolge für MySQL in PHP umzuwandeln? </p>
P粉076987386P粉076987386432 Tage vor502

Antworte allen(1)Ich werde antworten

  • P粉218361972

    P粉2183619722023-09-06 11:48:46

    我已经通过以下方式完成了它:

    $searchstring = '(victim OR suspect) AND crime NOT covid';
      $searchstring = str_replace(" OR ", ' ', $searchstring);
      $searchstring = str_replace(" AND ", ' +', $searchstring);
      $searchstring = str_replace(" NOT ", ' -', $searchstring);
      $searchstring = '+'.$searchstring;
    
      $searchresult = RssItem::whereRaw("MATCH (description) AGAINST ('$searchstring' IN BOOLEAN MODE)")->get();

    但也许有更好的方法? :-)

    Antwort
    0
  • StornierenAntwort