imagex / recipe-search
Search modules and config for ImageX.
Requires
- drupal/better_exposed_filters: ^7.1
- drupal/facets: ^3.0
- drupal/search_api: ^1.40
- drupal/search_api_autocomplete: ^1.11
- drupal/search_api_db: ^1.41
- drupal/search_api_exclude: ^2.0
- drupal/search_api_spellcheck: ^4.0
- drupal/simple_search_form: ^1.5
This package is auto-updated.
Last update: 2026-08-03 14:20:36 UTC
README
Search infrastructure for ImageX Drupal builds: a Search API index and database server covering all content, autocomplete search, exposed-filter widgets, and per-content-type search displays.
Modules Installed
- Block (core)
- Node (core)
- Views (core)
- Search API
- Search API Database Search
- Search API Autocomplete
- Search API Spellcheck
- Search API Exclude
- Simple Search Form
- Better Exposed Filters
- Facets (including the Facets Exposed Filters submodule)
Configuration Highlights
- Creates the
db_serverSearch API server (database backend) and thecontentindex, covering every node bundle and language by default. - Indexes
title,body,created,status,type,uid, and rendered HTML output (via thesearch_indexview mode), plus node access grants. - Enables the
html_filter,ignorecase,stopwords,tokenizer,transliteration, andhighlight(with excerpting) processors on full-text fields, and turns on thenumber_field_boostprocessor as a baseline (no field boosts configured — seerecipe-article, which layers article-specific field indexing and boosting on top of this index). - Enables Search API Exclude and creates a
search_indexandsearch_resultview display for every content type, cloned from each bundle's default display. - Places a search form block (autocomplete-enabled) in the site's navigation region.
- Grants anonymous and authenticated users permission to use the autocomplete search.
Installation
Add the recipe to a project with Composer:
composer require imagex/recipe-search
Then apply it:
drush recipe:apply recipes/recipe-search
You'll be prompted for your theme's machine name (used to place the search form block in the right region); it's optional and falls back to placing the block in the content region if left blank.
Notes
This recipe uses strict: false, so it only creates configuration that doesn't already exist — safe to reapply. recipe-article depends on this recipe and extends the content index with Article-specific fields and boosting via a setProperties config action, rather than shipping a competing copy of search_api.index.content — keep that split in mind if you edit this recipe's index config directly, since recipe-article's action always runs after this recipe's config is created and will overwrite whichever keys it sets.