Rumah  >  Soal Jawab  >  teks badan

Fungsi carian teks penuh PHP menggunakan operator AND, OR dan NOT

<p>Soalan newbie: Saya cuba melaksanakan carian teks penuh pada rentetan carian menggunakan php dan fasih. </p> <pre class="brush:php;toolbar:false;">$searchstring = "+(mangsa disyaki) +jenayah -covid"; $searchresult = RssItem::whereRaw("PERLAWANAN (huraian) TERHADAP ('$searchstring' DALAM MOD BOOLEAN)")->get();</pre> <p>Saya mahu pengguna saya dapat menetapkan rentetan carian seperti ini: </p> <pre class="brush:php;toolbar:false;">$searchstring = "(mangsa ATAU suspek) DAN jenayah BUKAN covid";</pre> <p>Adakah terdapat cara mudah untuk menukar input pengguna kepada rentetan carian teks penuh boolean untuk mysql dalam php? </p>
P粉076987386P粉076987386433 hari yang lalu504

membalas semua(1)saya akan balas

  • P粉218361972

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

    Saya telah melakukannya dengan cara ini:

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

    Tetapi mungkin ada cara yang lebih baik? :-)

    balas
    0
  • Batalbalas