Fungsi carian teks penuh PHP menggunakan operator AND, OR dan NOT
P粉076987386
P粉076987386 2023-09-05 15:06:32
0
1
531
<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粉076987386
P粉076987386

membalas semua(1)
P粉218361972

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? :-)

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan