Motori di ricerca
Guida offre due integrazioni di ricerca distinte. Per indicizzazione locale nello spazio di lavoro, senza configurazione, puoi usare l’indice Lucene.NET integrato. Per grandi volumi e integrazione esterna, puoi collegarti direttamente a cluster Elasticsearch.
Indice di ricerca locale (Lucene)
Sezione intitolata “Indice di ricerca locale (Lucene)”g.search.* fornisce un indice di ricerca testuale legato allo spazio di lavoro, basato su Lucene.NET. Non richiede configurazione, gira interamente in locale e salva i dati nella cartella dello spazio di lavoro (.guida/search-index/).
Casi d’uso:
- Indicizzare testo estratto da centinaia di pagine per recuperarlo rapidamente.
- Costruire basi di conoscenza locali per Retrieval-Augmented Generation (RAG) con LLM.
- Trovare elementi in coda o documenti salvati tramite ricerca di prossimità.
Esempio
Sezione intitolata “Esempio”async function main() { // Indicizza un documento g.search.index({ _key: "article-123", _collection: "articles", title: "Capire l'automazione del browser", body: "Guida è un browser controllabile da agenti...", url: "https://example.com/article" });
// Interroga con la sintassi Lucene standard // Supporta caratteri jolly, ricerca di prossimità (~) e query specifiche per campo const results = g.search.query("title:browser* OR body:automazione~");
g.log(`Trovate ${results.length} corrispondenze:`); for (const r of results) { g.log(`- ${r.fields.title} (Punteggio: ${r.score})`); }}6 metodi in totale: vedi il Riferimento API per l’elenco completo.
Elasticsearch
Sezione intitolata “Elasticsearch”g.elasticsearch.* si collega a cluster Elasticsearch per ingestione ad alta velocità, gestione degli indici e ricerche raw Query DSL.
A differenza dell’indice Lucene locale, Elasticsearch richiede un cluster esterno, in esecuzione localmente, tramite Docker o su Elastic Cloud.
Formato della stringa di connessione (JSON):
Le connessioni vengono configurate in sicurezza nel pannello Credenziali di accesso (Secrets) tramite il dialogo Aggiungi Elasticsearch (Add Elasticsearch). Internamente, questo salva una configurazione JSON:
{ "url": "http://localhost:9200", "username": "elastic", "password": "password"}Casi d’uso:
- Estrarre dataset molto grandi e inserirli usando operazioni in blocco ad alta velocità.
- Creare e gestire indici in modo programmatico.
- Cercare in grandi dataset usando direttamente Elasticsearch Query DSL.
Esempio
Sezione intitolata “Esempio”async function main() { const conn = "my-elastic"; // Nome della credenziale di accesso di connessione
// Controlla la connessione const isUp = await g.elasticsearch.ping(conn); if (!isUp) return g.log("Connessione fallita");
// Indicizza documenti in blocco con suddivisione automatica const docs = [{ id: 1, title: "Portatile" }, { id: 2, title: "Mouse" }]; const bulkRes = await g.elasticsearch.bulk(conn, "products", docs, 1000); g.log(`Indicizzati ${bulkRes.successful} documenti su ${bulkRes.total}`);
// Ricerca Query DSL const searchRes = await g.elasticsearch.search(conn, "products", { query: { match_all: {} } }); g.log(`Risultati totali: ${searchRes.hits.total.value}`);}8 metodi in totale: vedi il Riferimento API per l’elenco completo.
Sicurezza
Sezione intitolata “Sicurezza”Le connessioni a cluster Elasticsearch esterni seguono lo stesso modello di sicurezza delle credenziali di accesso:
- Gli script di origine MCP sono bloccati. Quando un agente IA esegue uno script tramite MCP, tutte le chiamate
g.elasticsearch.*restituiscono un errore. Questo impedisce all’IA di accedere a database esterni tramite automazione scriptata. Nota: l’indice Lucene localeg.search.*è accessibile a MCP. - I processi di lavoro ereditano l’origine del loro avviatore. Se MCP avvia un pool di processi di lavoro, anche quei processi vengono bloccati dall’accesso a Elasticsearch esterno.
- Gli script avviati dall’utente hanno accesso completo. Gli script eseguiti con
F5, i generatori di evento e i processori di coda possono usare tutti i metodi.
Le credenziali di connessione non vengono mai esposte tramite strumenti MCP: l’IA vede solo il nome della credenziale di accesso, non username o password.
Passi successivi
Sezione intitolata “Passi successivi”- Riferimento API — firme complete dei metodi per
g.search.*eg.elasticsearch.*. - Integrazioni database — collega MongoDB, PostgreSQL e archiviazione compatibile con S3.
- Credenziali di accesso — gestione di credenziali di connessione crittografate.