Sanity.io Suchintegration — GROQ-basierter Export mit AACsearch
Alex Chibilyaev
5/3/2026
Sanity.io ist das programmierbare CMS – entwickelt für strukturierte Inhalte, Echtzeit-Zusammenarbeit und maßgeschneiderte Bearbeitungserlebnisse. Mit GROQ (GROQ Query Language) bietet Sanity eine SQL-ähnliche Abfragesprache für Ihre Inhalte. Aber wie jedes CMS ist Sanity eine Content-Management-Plattform, keine Suchmaschine. Für kundenorientierte Suche mit Toleranz gegenüber Tippfehlern, Facettierung und Relevanz-Ranking benötigen Sie AACsearch.
Warum Sanity eine Suchschicht braucht
Die GROQ-Abfragen von Sanity sind hervorragend für Inhaltsabfragen geeignet, stoßen jedoch bei der Suche an Grenzen:
- Keine unscharfe Suche: Nur exakte Abfragen möglich
- Kein Relevanz-Ranking: Ergebnisse werden nach GROQ-Ausdrücken sortiert, nicht nach Suchrelevanz
- Keine Tippfehlertoleranz: Tippfehler der Benutzer führen zu null Ergebnissen
- Abfrageleistung: GROQ-Abfragen durchsuchen den gesamten Datensatz – bei großen Datenmengen für Suchanfragen langsam
- API-Ratenbegrenzung: Sanitys API ist nicht für häufige öffentliche Abfragen ausgelegt
AACsearch fügt eine Suchschicht hinzu, die mit den per GROQ abgefragten Inhalten von Sanity synchronisiert bleibt.
Wie der Sanity-Connector funktioniert
GROQ-basierter Export
Der Connector verwendet GROQ-Abfragen, um Inhalte aus Sanity zu extrahieren:
// Beispiel-GROQ-Abfrage für die Produktsuchindizierung
*[_type == "product" && defined(slug.current)] {
_id,
title,
slug,
"description": pt::text(body),
price,
categories[]->{ title },
"tags": tags[],
"mainImage": mainImage.asset->url,
"gallery": gallery[].asset->url,
_updatedAt
}
Echtzeit-Listener
Über periodische Exporte hinaus nutzt der Connector Sanitys Echtzeit-Listener-API für sofortige Aktualisierungen:
import sanityClient from "@sanity/client";
const client = sanityClient({
projectId: "your-project",
dataset: "production",
apiVersion: "2024-01-01",
useCdn: false,
});
// Auf Mutationen bei Produkten lauschen
const subscription = client
.listen(
'*[_type == "product"]',
{},
{ includeResult: true, events: ["create", "update", "delete"] },
)
.subscribe((event) => {
if (event.type === "mutation") {
// Dokumenterstellung verarbeiten
if (event.result) {
AACSearch.index({
collection: "products",
document: mapSanityDoc(event.result),
});
}
}
});
Bild-Asset-Verarbeitung
Sanitys Bildpipeline ist leistungsstark, aber komplex. Der Connector erledigt automatisch:
- Extraktion von Bild-URLs aus
image.asset->url-Referenzen - Optionale Anwendung von Sanitys Bildtransformationen (
w=600&h=600&fit=crop) - Einbindung von
alt-Text aus den Bildmetadaten - Verarbeitung von SVG, WebP und responsiven Bildsätzen
Konfiguration
{
"projectId": "your-sanity-project",
"dataset": "production",
"queries": [
{
"name": "products",
"groq": "*[_type == 'product' && defined(slug.current)]",
"collection": "products",
"schedule": "*/5 * * * *",
"realtime": true
},
{
"name": "articles",
"groq": "*[_type == 'article' && defined(slug.current) && publishAt < now()]",
"collection": "articles",
"schedule": "*/15 * * * *",
"realtime": true
}
],
"imageOptions": {
"width": 800,
"quality": 80,
"format": "auto"
}
}
Einrichtung des Connectors
- Sanity-API-Token mit Lesezugriff auf Ihren Datensatz generieren
- GROQ-Abfragen im AACsearch-Dashboard für jeden Inhaltstyp konfigurieren
- Felder dem AACsearch-Schema zuordnen (String, Number, Facet, Geo, usw.)
- Synchronisation starten – der erste Bulk-Import läuft sofort
- Echtzeit aktivieren für sofortige Aktualisierungen bei Inhaltsänderungen
Einzigartige Vorteile
Sanitys strukturiertes Inhaltsmodell harmoniert außergewöhnlich gut mit AACsearch:
- Blöcke und Portable Text: Rich Text in durchsuchbaren Klartext umwandeln
- Referenzen:
->-Referenzen automatisch zu verschachtelten Objekten auflösen - Arrays: Array-Felder in facettenkompatible Formate umwandeln
- Internationalisierung: Jedes Sprachfeld wird unabhängig durchsuchbar
- Entwürfe: Nur veröffentlichte Dokumente werden indiziert (konfigurierbar)
Anwendungsfälle
- Inhaltsreiche Websites – Suche über Artikel, Anleitungen und Dokumentationen
- Produktkataloge – Facettensuche mit Sanitys strukturierten Produktdaten
- Mehrsprachige Websites – sprachbewusste Suche mit Sanitys feldebene i18n
- Echtzeit-Zusammenarbeit – Suche spiegelt Änderungen wider, sobald Redakteure veröffentlichen
AACsearch Sanity.io-Connector befindet sich in der Entwicklung. Frühen Zugang erhalten, um benachrichtigt zu werden, sobald er startet.