Moteurs de recherche
Guida fournit deux intégrations de recherche distinctes. Pour l’indexation locale limitée à l’espace de travail, sans configuration, vous pouvez utiliser l’index Lucene.NET intégré. Pour des volumes massifs et l’intégration externe, vous pouvez vous connecter directement à des clusters Elasticsearch.
Index de recherche local (Lucene)
Section intitulée « Index de recherche local (Lucene) »g.search.* fournit un index de recherche plein texte limité à l’espace de travail, appuyé par Lucene.NET. Il ne demande aucune configuration, tourne entièrement en local et conserve les données dans le dossier de votre espace de travail (.guida/search-index/).
Cas d’usage :
- Indexer le texte extrait de centaines de pages pour une récupération rapide.
- Construire des bases de connaissance locales pour la génération augmentée par récupération (RAG) avec des LLM.
- Retrouver des éléments de file ou documents stockés précis via correspondance approximative.
async function main() { // Index a document g.search.index({ _key: "article-123", _collection: "articles", title: "Understanding Browser Automation", body: "Guida is an agentic browser...", url: "https://example.com/article" });
// Query with standard Lucene syntax // Supports wildcards, fuzzy matching (~), and field-specific queries const results = g.search.query("title:Browser* OR body:automation~");
g.log(`Found ${results.length} matches:`); for (const r of results) { g.log(`- ${r.fields.title} (Score: ${r.score})`); }}6 méthodes au total — voir la référence API pour la liste complète.
Elasticsearch
Section intitulée « Elasticsearch »g.elasticsearch.* se connecte à des clusters Elasticsearch pour l’ingestion à haut débit, la gestion d’index et les recherches Query DSL brutes.
Contrairement à l’index Lucene local, Elasticsearch exige un cluster externe, lancé localement, via Docker ou sur Elastic Cloud.
Format de chaîne de connexion (JSON) :
Les connexions sont configurées en sécurité dans le panneau Secrets via la boîte de dialogue « Add Elasticsearch ». En interne, cela stocke une configuration JSON :
{ "url": "http://localhost:9200", "username": "elastic", "password": "password"}Cas d’usage :
- Scraper de très grands jeux de données et les ingérer avec des opérations bulk à haut débit.
- Créer et gérer des index par programme.
- Rechercher dans de grands jeux de données avec la Query DSL Elasticsearch brute.
async function main() { const conn = "my-elastic"; // Nom de votre entrée de connexion
// Check connection const isUp = await g.elasticsearch.ping(conn); if (!isUp) return g.log("Connection failed");
// Bulk index documents with automatic chunking const docs = [{ id: 1, title: "Laptop" }, { id: 2, title: "Mouse" }]; const bulkRes = await g.elasticsearch.bulk(conn, "products", docs, 1000); g.log(`Indexed ${bulkRes.successful} out of ${bulkRes.total}`);
// Query DSL search const searchRes = await g.elasticsearch.search(conn, "products", { query: { match_all: {} } }); g.log(`Total hits: ${searchRes.hits.total.value}`);}8 méthodes au total — voir la référence API pour la liste complète.
Sécurité
Section intitulée « Sécurité »Les connexions aux clusters Elasticsearch externes suivent le même modèle de sécurité que les identifiants d’accès :
- Les scripts d’origine MCP sont bloqués. Lorsqu’un agent IA exécute un script via MCP, tous les appels
g.elasticsearch.*renvoient une erreur. Cela empêche l’IA d’accéder à des bases externes par automatisation scriptée. L’index Lucene localg.search.*, lui, est accessible à MCP. - Les processus héritent de l’origine de leur lanceur. Si MCP démarre un pool de processus, ces processus sont eux aussi bloqués pour l’accès externe à Elasticsearch.
- Les scripts lancés par l’utilisateur ont un accès complet. Les scripts exécutés via
F5, déclencheurs d’événements et processeurs de file peuvent utiliser toutes les méthodes.
Les identifiants de connexion ne sont jamais exposés par les outils MCP : l’IA ne voit que le nom de l’entrée, pas le nom d’utilisateur ni les mots de passe.
Étapes suivantes
Section intitulée « Étapes suivantes »- Référence API — signatures complètes des méthodes
g.search.*etg.elasticsearch.* - Intégrations de bases de données — connexions à MongoDB, PostgreSQL et stockage compatible S3
- Identifiants d’accès — gestion des identifiants de connexion chiffrés