Retrieving results | laravel-site-search | Spatie

 SPATIE

  Laravel Site Search
======================

spatie.be/open-source

  [Docs](https://spatie.be/docs)  [Laravel-site-search](https://spatie.be/docs/laravel-site-search/v3)  Basic-usage  Retrieving results

 Version   v3   v1

 Other versions for crawler [v3](https://spatie.be/docs/laravel-site-search/v3) [v1](https://spatie.be/docs/laravel-site-search/v1)

- [ Introduction ](https://spatie.be/docs/laravel-site-search/v3/introduction)
- [ Support us ](https://spatie.be/docs/laravel-site-search/v3/support-us)
- [ Requirements ](https://spatie.be/docs/laravel-site-search/v3/requirements)
- [ Installation and setup ](https://spatie.be/docs/laravel-site-search/v3/installation-setup)
- [ About us ](https://spatie.be/docs/laravel-site-search/v3/about-us)
- [ Questions and issues ](https://spatie.be/docs/laravel-site-search/v3/questions-issues)
- [ Changelog ](https://spatie.be/docs/laravel-site-search/v3/changelog)

Basic usage
-----------

- [ High level overview ](https://spatie.be/docs/laravel-site-search/v3/basic-usage/high-level-overview)
- [ Indexing your first site ](https://spatie.be/docs/laravel-site-search/v3/basic-usage/indexing-your-first-site)
- [ Retrieving results ](https://spatie.be/docs/laravel-site-search/v3/basic-usage/retrieving-results)
- [ Preventing content from being indexed ](https://spatie.be/docs/laravel-site-search/v3/basic-usage/preventing-content-from-being-indexed)
- [ Using a search profile ](https://spatie.be/docs/laravel-site-search/v3/basic-usage/using-a-search-profile)
- [ Listing indexes ](https://spatie.be/docs/laravel-site-search/v3/basic-usage/listing-indexes)
- [ Troubleshooting ](https://spatie.be/docs/laravel-site-search/v3/basic-usage/troubleshooting)

Advanced usage
--------------

- [ Creating multiple search indexes ](https://spatie.be/docs/laravel-site-search/v3/advanced-usage/creating-multiple-search-indexes)
- [ Using a custom indexer ](https://spatie.be/docs/laravel-site-search/v3/advanced-usage/using-a-custom-indexer)
- [ Indexing extra properties ](https://spatie.be/docs/laravel-site-search/v3/advanced-usage/indexing-extra-properties)
- [ Available events ](https://spatie.be/docs/laravel-site-search/v3/advanced-usage/available-events)
- [ Using the database driver ](https://spatie.be/docs/laravel-site-search/v3/advanced-usage/using-the-database-driver)
- [ Using the Meilisearch driver ](https://spatie.be/docs/laravel-site-search/v3/advanced-usage/using-the-meilisearch-driver)
- [ Building a Filament integration ](https://spatie.be/docs/laravel-site-search/v3/advanced-usage/filament-integration)

 Retrieving results
==================

###  On this page

1. [ Getting all results ](#content-getting-all-results)
2. [ Limiting results ](#content-limiting-results)
3. [ Paginating results ](#content-paginating-results)
4. [ Deep linking to sections ](#content-deep-linking-to-sections)

You can retrieve results from an index using `Spatie\SiteSearch\Search`.

Getting all results
-----------------------------------------------------------------------------------------------------------------

Here's how you can retrieve all results from an index named `my-index`.

```
use Spatie\SiteSearch\Search;

$searchResults = Search::onIndex('my-index')
    ->query('your query')
    ->get(); // returns all results
```

Limiting results
--------------------------------------------------------------------------------------------------------

You can limit the amount of results using the `limit` function.

```
use Spatie\SiteSearch\Search;

$searchResults = Search::onIndex('my-index')
    ->query('your query')
    ->limit(20)
    ->get(); // returns the first 20 results
```

Paginating results
--------------------------------------------------------------------------------------------------------------

You can paginate results using by calling `paginate`.

```
use Spatie\SiteSearch\Search;

$searchResults = Search::onIndex('my-index')
    ->query('your query')
    ->paginate(20); // returns an instance of `Illuminate\Pagination\Paginator` with 20 results per page
```

Deep linking to sections
--------------------------------------------------------------------------------------------------------------------------------

Search results can link directly to a specific section of a page. When your HTML headings have `id` attributes, the indexer automatically extracts them and associates them with nearby text content.

```
Installation
To install the package, run...

Configuration
After installation, configure...
```

Use the `urlWithAnchor()` method on a `Hit` to get the full URL including the fragment:

```
foreach ($searchResults->hits as $hit) {
    $url = $hit->urlWithAnchor(); // https://example.com/page#configuration
}
```

If no anchor is available for the matched content, `urlWithAnchor()` returns the base URL.

This works with all drivers (SQLite, Meilisearch, etc.).
