sumeetghimire / fastsearch
FastSearch is a powerful Laravel package that accelerates search operations across multiple database models. It allows for flexible keyword searching with support for exact and partial matches, caching, and easy integration with Laravel applications.
Requires
- php: ^8.0
- illuminate/cache: ^9.0|^10.0|^11.0|^12.0
- illuminate/database: ^9.0|^10.0|^11.0|^12.0
- illuminate/support: ^9.0|^10.0|^11.0|^12.0
Conflicts
- illuminate/support: <9.0
README
FastSearch is a powerful Laravel package that accelerates search operations across multiple database models. It allows for flexible keyword searching with support for exact and partial matches, caching, and easy integration with Laravel applications.
Features
- Multi-model Search: Search across multiple models with the same keyword.
- Exact & Partial Matching: Supports
LIKE
queries and exact matches. - Caching: Built-in caching to improve performance.
- Easy Integration: Quick setup and simple to use in Laravel applications.
Installation
To install the FastSearch package, run the following command:
composer require sumeetghimire/fastsearch
Example How to Use
use SumeetGhimire\FastSearch\FastSearch;
public function search(Request $request)
{
$keyword = $request->input('keyword', 'd');
$userColumn = $request->input('user_column', 'name');
$portfolioColumn = $request->input('portfolio_column', 'title');
$returnColumnOnly = $request->input('return_column_only', false);
// Measure the execution time
// Search in the User model with pagination
$results = $this->search
->addModel(User::class, 'name', true)
->setKeyword('t')
->setMatchType('like')
->setPaginationEnabled(true)
->setPagination(5, 1)
->search();
return response()->json([
'status' => 'success',
'results' => $results,
]);
}
License
The FastSearch package is open-source and licensed under the MIT License.