为了更清楚我有这个领域
Columntobesearch
aword1 bword1
aword2 bword2
aword3 bword4
现在我要做的是使用sql通配符进行搜索,所以我所做的就是这样
%searchbox%
我在搜索的两端都放置了通配符,但搜索的内容只是该字段的第一个单词
当我搜索“关键字”时,所有字段均显示,但当我搜索“关键字”时,则未显示任何内容,请帮助。
这是我的完整代码
$Input=Input::all();
$makethis=Input::flash();
$soptions=Input::get('soptions');
$searchbox=Input::get('searchbox');
$items = Gamefarm::where('roost_hen', '=',Input::get('sex'))
->where($soptions, 'LIKE','%' . $searchbox . '%')
->paginate(12);
如果您使用mysql,则可以尝试以下操作:
<?php
$q = Input::get('searchbox');
$results = DB::table('table')
->whereRaw("MATCH(columntobesearch) AGAINST(? IN BOOLEAN MODE)",
array($q)
)->get();
当然,您需要准备表以便在迁移文件中进行全文搜索
DB::statement('ALTER TABLE table ADD FULLTEXT search(columntobesearch)');
无论如何,这不是执行FTS的更具伸缩性和效率的方法。对于一个可扩展的和可靠的全文搜索我强烈建议你看elasticsearch和实施任何Laravel包此任务
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句