На моем веб-сайте мне нужно предоставить опцию поиска, где пользователь может искать другой продукт. Теперь я хочу, чтобы поисковый ключ совпадал с продуктом, отображал его и вместе с отображением содержал некоторое предложение с этим ключевым словом поиска, разделенным пробелом.
list($type,$search) = explode(":", $key);
$searchValues = preg_split('/\s+/', $search, -1, PREG_SPLIT_NO_EMPTY);
ProductDetail::join('product_brands','product_details.brand_id','product_brands.id')
->select('brand_name as manufacturer','product_availability as isInStock','product_details.*','product_price as displayPrice')
->where(function ($q) use ($searchValues,$search) {
$q->where('product_name', 'like', "%{$search}%");
foreach ($searchValues as $value) {
$q->orWhere('product_name', 'like', "%{$value}%");
}
})->paginate(5);
Теперь проблема с этим результатом заключается в том, что он не отображается в соответствии с наилучшим / первым соответствием . поэтому пользователь не может найти то, что он ищет, в списке других предложений.
Так, как получить лучший подобранный заказ?
Просмотреть демо-версию