Each index gets a finder service.
opensearch.finder.<index> returns hydrated resultsopensearch.finder_raw.<index> returns raw OpenSearch responseExample service injection:
public function __construct(FinderInterface $finder) {}
Example query:
$results = $finder->find([
'query' => [
'match' => ['name' => 'bike'],
],
]);
Configure a repository per index:
opensearch:
indexes:
products:
repository: App\Search\ProductRepository
Repository base class:
final class ProductRepository extends Repository
{
public function findBySku(string $sku): iterable
{
return $this->search([
'query' => ['term' => ['sku' => $sku]],
]);
}
}
How can I help you explore Laravel packages today?