gpt4 book ai didi

search - 在 CakePHP 中从多词搜索查询形成查找条件

转载 作者:行者123 更新时间:2023-12-04 21:48:32 24 4
gpt4 key购买 nike

我的产品具有多个可搜索字段(名称、文本、产品代码等)。

我想要做的是分解搜索字符串并确保在记录中的某个位置找到每个单词。

用一个词我通常会这样做:

'OR'=>array(
'name LIKE'=>'%' . $oneword . '%',
'text LIKE'=>'%' . $oneword . '%',
'code LIKE'=>'%' . $oneword . '%',
)

现在我觉得我必须创建与搜索字符串包含的单词一样多的 OR 数组,并将它们全部包含在 AND 数组中。我只是不知道如何编码。

最佳答案

类似这样的事情应该可以做到

$conditions = array();
$search_terms = explode(' ', $search_string);
foreach($search_terms as $search_term){
$conditions[] = array('Model.name Like' =>'%'.$search_term.'%');
$conditions[] = array('Model.text Like' =>'%'.$search_term.'%');
$conditions[] = array('Model.code Like' =>'%'.$search_term.'%');
}
$products = $this->paginate('Product', array('conditions' => array('OR' => $conditions)));

编辑:如果您的所有搜索词必须出现在任何字段中,则将如下所示:

$conditions = array();
$search_terms = explode(' ', $search_string);
foreach($search_terms as $search_term){
$conditions[] = array('OR' => array('Model.name Like' =>'%'.$search_term.'%',
'Model.text Like' =>'%'.$search_term.'%',
'Model.code Like' =>'%'.$search_term.'%',
)
);
}
$products = $this->paginate('Product', $conditions);

关于search - 在 CakePHP 中从多词搜索查询形成查找条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6729425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com