使用AND、OR和NOT运算符的PHP全文搜索功能
P粉076987386
P粉076987386 2023-09-05 15:06:32
0
1
533
<p>新手问题: 我正在尝试使用php和eloquent在搜索字符串上实现全文搜索。</p> <pre class="brush:php;toolbar:false;">$searchstring = "+(victim suspect) +crime -covid"; $searchresult = RssItem::whereRaw("MATCH (description) AGAINST ('$searchstring' IN BOOLEAN MODE)")->get();</pre> <p>我希望我的用户能够设置一个类似这样的搜索字符串:</p> <pre class="brush:php;toolbar:false;">$searchstring = "(victim OR suspect) AND crime NOT covid";</pre> <p>有没有一种简单的方法将用户输入转换为php中mysql的布尔全文搜索字符串?</p>
P粉076987386
P粉076987386

全部回复(1)
P粉218361972

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板