recherche

Maison  >  Questions et réponses  >  le corps du texte

Fonctionnalité de recherche en texte intégral PHP utilisant les opérateurs AND, OR et NOT

<p>Questions pour les débutants : J'essaie d'implémenter une recherche en texte intégral sur une chaîne de recherche en utilisant php et eloquent. </p> <pre class="brush:php;toolbar:false;">$searchstring = "+(victime suspecte) +crime -covid"; $searchresult = RssItem::whereRaw("MATCH (description) CONTRE ("$searchstring' EN MODE BOOLÉEN)")->get();</pre> <p>Je souhaite que mes utilisateurs puissent définir une chaîne de recherche comme celle-ci : </p> <pre class="brush:php;toolbar:false;">$searchstring = "(victime OU suspect) ET crime PAS covid";</pre> <p>Existe-t-il un moyen simple de convertir les entrées de l'utilisateur en une chaîne de recherche booléenne en texte intégral pour MySQL en PHP ? </p>
P粉076987386P粉076987386443 Il y a quelques jours539

répondre à tous(1)je répondrai

  • P粉218361972

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

    Je l'ai fait de cette façon :

    $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();

    Mais peut-être existe-t-il une meilleure façon ? :-)

    répondre
    0
  • Annulerrépondre