search_ai_feedback
Search AI Feedback lets visitors rate individual search results as Helpful or Not helpful directly on the results page. Site administrators can review satisfaction trends, see which query + result pairs receive negative feedback, and generate AI-powered recommendations to improve search quality.
This module answers a common problem: analytics show what people searched for, but not whether the results they clicked were actually useful. By collecting feedback per result, content and search teams get actionable signals to fix weak pages, synonyms, and ranking issues.
It works with Drupal core Search and with Search API — the standard Drupal integration used for external search engines. No block placement is required; the widget attaches automatically on supported search result listings.
Features
- Per-result feedback widget — “Was this helpful?” with thumbs up / thumbs down on every search result.
- Automatic attachment — no blocks; integrates via Drupal search result templates.
- Search-backend agnostic — works with Drupal core Search and Search API; does not depend on a specific index technology.
- Compatible external search (via Search API):
- Apache Solr (most common)
- OpenSearch
- Elasticsearch
- Database and other Search API backends
- Configurable search URLs — default
/search; supports custom paths such as/find,/site-search, or language prefixes like/en/search. - Anonymous voting (optional) — one vote per user per query + result; duplicate votes prevented.
- Admin dashboard — satisfaction overview, latest query + result ratings, mixed-feedback highlighting.
- AI recommendations — up to five concrete, data-driven action items from aggregated votes (requires the AI module).
- Developer extensibility — alter hook and services for custom search UIs.
- Lightweight design — no queues, cron jobs, or blocks; AI insight text stored in admin session only.
When to use this module
- You run site search (core Search or Search API) and want direct user feedback on result quality.
- You use Solr, OpenSearch, or Elasticsearch through Search API and need relevance signals beyond click logs.
- You want editors to see which pages fail for which queries, not only top search terms.
- You use the AI module and want search-specific improvement suggestions from real vote data.
What it does not do automatically
- Does not connect directly to Solr, Elasticsearch, or OpenSearch — it hooks into Drupal-rendered results.
- Does not work on fully custom JavaScript search UIs or headless front ends without manual integration.
- Does not change search ranking or indexes — it collects feedback and suggests improvements.
Post-Installation
- Enable the module:
drush en search_ai_feedback -yand clear caches. - Configure the AI module with a default chat provider (needed only for generating insights; voting works without it).
- Go to Configuration → AI → Search AI Feedback (
/admin/config/ai/search-ai-feedback):- Enable Enable feedback collection.
- Set Search result page paths to match your site (default
/search). - Configure minimum votes for AI analysis, anonymous voting, and the AI prompt if needed.
- Assign permissions (see below).
- Visit your search page on the front end — each result should show the feedback widget.
- Review data at Reports → Search AI Feedback (
/admin/reports/search-ai-feedback). - After enough votes, click Generate AI Insights on the dashboard (requires permission).
Search URL configuration
If your search results are not under /search, add your path prefix in settings (one per line), for example:
/site-search/find/en/search
Leave the field empty to show the widget on all supported search listings regardless of URL.
Permissions to assign
- Administer Search AI Feedback — settings
- View Search AI Feedback Reports — dashboard
- Generate AI Insights — run AI analysis
Voting uses standard Access content permission.
External search setup (Solr, OpenSearch, Elasticsearch)
Ensure search results are rendered through one of these Drupal patterns:
- Search API + Views (typical Solr setup), or
- Search API Page
Flow: External engine → Search API index → Views or Search API Page → Drupal templates → widget attached.
Custom search UIs
If your search is not rendered with standard Drupal templates, render the widget manually or implement hook_search_ai_feedback_result_context_alter(). See the module README and search_ai_feedback.api.php.
Additional Requirements
- Drupal 11.x
- PHP 8.3 or higher
- AI module — required for generating AI insights (feedback collection does not require AI)
For Search API / external search (not bundled with this module)
- Search API — required to use Solr, OpenSearch, Elasticsearch, etc.
- Your chosen backend module, for example:
- Search API Solr (Apache Solr)
- Search API integrations for OpenSearch or Elasticsearch (as used on your site)
- Views (core) or Search API Page — to display results in a supported template
Optional (local development only)
- Ollama — fallback when the configured AI provider is unavailable; enable in settings or via environment variables
Recommended modules/libraries
- Search API — essential for Solr, OpenSearch, Elasticsearch, and advanced search on Drupal 11.
- Search API Solr — if you use Apache Solr (the most common external search setup).
- AI — required for AI insight generation on the dashboard.
- Search API Page — alternative to Views for displaying Search API results.
Similar projects
Drupal has several search-related modules, but few combine per-result user feedback with AI-generated relevance recommendations:
- Search API — provides search indexing and querying; does not collect end-user feedback on result quality. Search AI Feedback complements Search API by adding a feedback layer on rendered results.
- Analytics modules (e.g. Google Analytics) — show search terms and traffic, but not whether a specific result was helpful for a specific query.
- Custom webforms / polls — can collect opinions, but are not tied to individual search results and do not include search-specific AI analysis out of the box.
Search AI Feedback is focused on: lightweight per-result voting, a dedicated admin dashboard, and optional AI recommendations grounded in your vote data — with minimal configuration and no block placement.
Supporting this Module
Support development by reporting issues, contributing patches, and helping improve documentation on Drupal.org. Add your Patreon, Open Collective, or sponsorship links here if applicable.
Community Documentation
- Module README (included in the package) — installation, configuration, search path examples, and developer integration.
- Hook documentation:
search_ai_feedback.api.php - Demo site / walkthrough — add links here when available.
Additional information
Compatible search setups at a glance
Setup Automatic widget Notes Drupal core Search Yes Default path/search
Search API + Solr
Yes
Via Search API Views or Search API Page
Search API + OpenSearch
Yes
Via Search API Views or Search API Page
Search API + Elasticsearch
Yes
Via Search API Views or Search API Page
Search API + database
Yes
Via Views or Search API Page
Custom JS / headless search
No
Manual widget or alter hook required
How votes are stored
Each vote records the search query text, a stable result identifier (e.g. entity:node/42), the vote type, and timestamp. The dashboard shows the latest query + result pairs and overall helpful vs not helpful satisfaction.