Elasticsearch vs MyScale Selezionare il database giusto per le applicazioni GenAI
Con l’evoluzione delle applicazioni guidate dall’IA, l’importanza delle capacità di ricerca vettoriale nel supportare questi progressi non può essere sopravvalutata. Questo post del blog discuterà due database di rilievo con capacità di ricerca vettoriale: Elasticsearch e MyScale. Ciascuno offre capacità robuste per gestire la ricerca vettoriale, una funzionalità essenziale per applicazioni come motori di raccomandazione, recupero di immagini e ricerca semantica. Il nostro obiettivo è fornire a sviluppatori e ingegneri un confronto chiaro, aiutandoli a decidere quale database si allinea meglio ai loro requisiti specifici.
Che cos’è un database vettoriale?
Prima di confrontare Elasticsearch vs MyScale, esploriamo innanzitutto il concetto di database vettoriali.
Un database vettoriale è progettato specificamente per archiviare e interrogare vettori ad alta dimensionalità, che sono rappresentazioni numeriche di dati non strutturati. Questi vettori codificano informazioni complesse, come il significato semantico del testo, le caratteristiche visive delle immagini o gli attributi dei prodotti. Consentendo ricerche di similarità efficienti, i database vettoriali svolgono un ruolo fondamentale nelle applicazioni di IA, permettendo un’analisi e un recupero dei dati più avanzati.
I casi d’uso comuni per i database vettoriali includono raccomandazioni di prodotti e-commerce, piattaforme di scoperta dei contenuti, rilevamento di anomalie nella cybersecurity, analisi di immagini mediche e attività di elaborazione del linguaggio naturale (NLP). Svolgono inoltre un ruolo cruciale nella Retrieval Augmented Generation (RAG), una tecnica che migliora le prestazioni dei large language models (LLMs) fornendo conoscenza esterna per ridurre problemi come le allucinazioni dell’IA.
Sul mercato sono disponibili molti tipi di database vettoriali, tra cui:
- Database vettoriali purpose-built come Milvus, Zilliz Cloud (Milvus completamente gestito)
- Librerie di ricerca vettoriale come Faiss e Annoy.
- Database vettoriali leggeri come Chroma e Milvus Lite.
- Database tradizionali con componenti aggiuntivi per la ricerca vettoriale capaci di eseguire ricerche vettoriali su piccola scala.
Elasticsearch è un motore di ricerca basato su Apache Lucene e MyScale è un database costruito su ClickHouse che combina ricerca vettoriale e analisi SQL. Entrambi dispongono di capacità di ricerca vettoriale come componente aggiuntivo. Questo post confronta le loro capacità di ricerca vettoriale.
Elasticsearch: panoramica e tecnologia di base
Elasticsearch è un motore di ricerca open source costruito sopra la libreria Apache Lucene. È noto per l’indicizzazione in tempo reale e la ricerca full text, quindi è una soluzione di riferimento per applicazioni intensive e analisi dei log. Elasticsearch consente di cercare e analizzare grandi quantità di dati in modo rapido ed efficiente.
Elasticsearch è stato costruito per la ricerca e l’analisi, con funzionalità come ricerca fuzzy, corrispondenza di frasi e ranking di rilevanza. È ottimo per scenari in cui sono richieste query di ricerca complesse e recupero dei dati in tempo reale. Con l’ascesa delle applicazioni di IA, Elasticsearch ha aggiunto capacità di ricerca vettoriale, così può eseguire ricerca di similarità e ricerca semantica, necessarie per casi d’uso di IA come riconoscimento delle immagini, recupero di documenti e IA generativa.
Ricerca vettoriale
La ricerca vettoriale è integrata in Elasticsearch tramite Apache Lucene. Lucene organizza i dati in segmenti immutabili che vengono uniti periodicamente; i vettori vengono aggiunti ai segmenti nello stesso modo delle altre strutture dati. Il processo prevede il buffering dei vettori in memoria al momento dell’indicizzazione, quindi la serializzazione di questi buffer come parte dei segmenti quando necessario. I segmenti vengono uniti periodicamente per l’ottimizzazione e le ricerche combinano i risultati vettoriali su tutti i segmenti.
Per l’indicizzazione vettoriale, Elasticsearch utilizza l’algoritmo HNSW (Hierarchical Navigable Small World), che crea un grafo in cui vettori simili sono collegati tra loro. Viene scelto per la sua semplicità, le solide prestazioni nei benchmark e la capacità di gestire aggiornamenti incrementali senza richiedere una riaddestramento completo dell’indice. Il sistema esegue ricerche vettoriali tipicamente in decine o centinaia di millisecondi, molto più velocemente degli approcci a forza bruta.
L’architettura tecnica di Elasticsearch è uno dei suoi maggiori punti di forza. Il sistema supporta ricerche senza lock anche durante l’indicizzazione concorrente e mantiene una rigorosa coerenza tra campi diversi quando si aggiornano i documenti. Quindi, se aggiorni sia i campi vettoriali sia quelli keyword, le ricerche vedranno o tutti i valori vecchi o tutti i valori nuovi: la coerenza dei dati è garantita. Sebbene il sistema possa scalare oltre la RAM disponibile, le prestazioni sono ottimali quando i dati vettoriali risiedono in memoria.
Oltre alle funzionalità principali di ricerca vettoriale, Elasticsearch offre pratiche funzionalità di integrazione che lo rendono estremamente prezioso. Le ricerche vettoriali possono essere combinate con i filtri tradizionali di Elasticsearch, quindi puoi effettuare una ricerca ibrida che combina la similarità vettoriale con i risultati della ricerca full-text. La ricerca vettoriale è pienamente compatibile con le funzionalità di sicurezza, le aggregazioni e l’ordinamento degli indici di Elasticsearch, quindi è una soluzione completa per i casi d’uso di ricerca moderni.
Cos’è MyScale? Panoramica e tecnologia principale
MyScale è un database basato sul cloud costruito sopra il database open source ClickHouse, progettato per carichi di lavoro di AI e machine learning. Può gestire dati strutturati e vettoriali, analytics in tempo reale e machine learning. MyScale è focalizzato su serie temporali, ricerca vettoriale e ricerca full-text, quindi è adatto all’elaborazione in tempo reale e agli insight guidati dall’AI. Utilizzando l’architettura di ClickHouse, MyScale offre alte prestazioni ed è scalabile per l’AI.
Una delle caratteristiche chiave di MyScale è il supporto SQL nativo, che semplifica le query guidate dall’AI integrando ricerca vettoriale, ricerca full-text e query SQL tradizionali in un unico sistema. Questo riduce la necessità di più strumenti e lo rende scalabile per l’AI. MyScale supporta e gestisce l’elaborazione analitica di dati sia strutturati sia vettorializzati su un’unica piattaforma, utilizzando l’architettura di database OLAP per operare su dati vettorializzati. Gli sviluppatori possono interagire con MyScale usando SQL, quindi è accessibile a tutti i programmatori che hanno familiarità con i database relazionali.
MyScale dispone di diversi tipi di indici vettoriali e metriche di similarità per supportare casi d’uso diversi. Supporta metriche di distanza comuni come la distanza euclidea (L2), il prodotto interno (IP) e la similarità del coseno. Il database dispone di più algoritmi di indicizzazione: MSTG (Multi-Scale Tree Graph), ScaNN, IVFFLAT, IVFPQ, IVFSQ e HNSW, ciascuno con il proprio set di parametri da ottimizzare. Il motore vettoriale proprietario MSTG di MyScale utilizza SSD NVMe per aumentare la densità dei dati, quindi supera i database vettoriali specializzati sia in termini di prestazioni sia di costi.
Combinando le funzionalità di un database SQL, di un database vettoriale e di un motore di ricerca full-text in un unico sistema, MyScale riduce i costi di infrastruttura e manutenzione. Questa unificazione consente query e analytics congiunti sui dati e una singola base dati per le applicazioni AI. MyScale dispone anche di MyScale Telemetry per la piena osservabilità dei sistemi LLM, così puoi monitorare ed eseguire il debug in modo efficiente. Man mano che i dati diventano più complessi, MyScale è una soluzione a prova di futuro in grado di gestire nuove modalità di dati e dimensioni di database maggiori, mantenendo al contempo le prestazioni di calcolo e l’integrazione tra diversi tipi di dati.
Differenze chiave
Quando si sceglie una soluzione di ricerca vettoriale, conoscere le principali differenze tra Elasticsearch e MyScale ti aiuterà a prendere una decisione. Analizziamole:
Architettura e fondamento
Elasticsearch è costruito sopra la libreria di Apache Lucene, focalizzata su ricerca e analisi. Memorizza i vettori come segmenti immutabili che si fondono periodicamente usando l’algoritmo HNSW per l’indicizzazione vettoriale. Questo crea un grafo in cui vettori simili si connettono, quindi le ricerche sono solitamente nell’ordine di frazioni di millisecondo.
MyScale adotta un approccio diverso, costruito sopra ClickHouse. Utilizza un’architettura OLAP progettata per carichi di lavoro di AI e machine learning. MyScale offre molteplici opzioni di indicizzazione tra cui MSTG, ScaNN, IVFFLAT, IVFPQ, IVFSQ e HNSW, così hai maggiore flessibilità per scegliere l’algoritmo giusto per il tuo caso d’uso.
Ricerca e gestione dei dati
Elasticsearch è efficace nel combinare la ricerca vettoriale con la ricerca tradizionale. Puoi combinare ricerche di similarità vettoriale con query full-text, quindi è forte negli scenari di ricerca ibrida. Il sistema è rigoroso sulla coerenza durante gli aggiornamenti: quando modifichi sia campi vettoriali sia campi keyword, le ricerche vedranno o tutti i valori vecchi o tutti quelli nuovi.
MyScale si distingue per il supporto SQL nativo, così puoi combinare ricerca vettoriale, ricerca full-text e query SQL in un unico sistema. Gestisce sia dati strutturati sia dati vettoriali con la sua architettura OLAP, che potrebbe essere ciò a cui sei abituato se lavori già con database SQL.
Prestazioni e storage
Elasticsearch offre le migliori prestazioni quando i dati vettoriali stanno in memoria, ma può scalare oltre la RAM disponibile. La sua architettura di ricerca lock-free consente l’indicizzazione concorrente senza bloccare le ricerche.
MyScale utilizza un approccio unico con il suo motore vettoriale MSTG, che usa SSD NVMe per aumentare la densità dei dati. Secondo la documentazione, questo offre prestazioni ed efficienza dei costi migliori rispetto ai database vettoriali specializzati.
Integrazione e monitoraggio
Elasticsearch ha buone funzionalità di integrazione, funziona bene con le sue funzionalità di sicurezza, aggregazioni e ordinamento degli indici. Quindi è adatto alla maggior parte dei casi d’uso di ricerca moderni.
MyScale dispone di MyScale Telemetry per monitorare i sistemi LLM, così puoi tracciare ed eseguire il debug delle tue app. Mira a ridurre la complessità dell’infrastruttura combinando database SQL, database vettoriale e ricerca full-text in un unico sistema.
Quando usare ciascuno
Elasticsearch è ottimo per scenari di ricerca ibrida in cui devi combinare la ricerca full-text con la ricerca di similarità vettoriale. La sua architettura costruita sopra Apache Lucene lo rende perfetto per applicazioni che richiedono indicizzazione in tempo reale, rigorosa coerenza dei dati e ricerca concorrente mantenendo le prestazioni. Quindi se sei già nell’ecosistema Elastic o stai costruendo un’applicazione di ricerca che deve bilanciare ricerca semantica e ricerca per parole chiave.
MyScale è più adatto a organizzazioni che hanno flussi di lavoro basati su SQL e necessitano di più opzioni di indicizzazione vettoriale. La sua architettura ClickHouse e OLAP lo rende perfetto per carichi di lavoro di AI e machine learning che combinano analisi di dati strutturati con operazioni vettoriali. La sua capacità di usare SSD NVMe tramite il suo motore vettoriale MSTG e il monitoraggio integrato dei sistemi LLM lo rende ottimo per team che costruiscono applicazioni AI che necessitano di storage conveniente e osservabilità.
Conclusione
In definitiva, la scelta tra Elasticsearch e MyScale dipende dai tuoi requisiti tecnici e dall’infrastruttura esistente. Elasticsearch ha capacità mature di ricerca ibrida e scalabilità comprovata con rigorose garanzie di coerenza, quindi è ottimo per applicazioni fortemente orientate alla ricerca. MyScale ha operazioni vettoriali native SQL con molteplici opzioni di indicizzazione e utilizzo efficiente dello storage, quindi è adatto ad applicazioni focalizzate sull’AI che necessitano di analisi di dati strutturati. La tua decisione dovrebbe basarsi sulle competenze del tuo team (SQL vs conoscenze specifiche di ricerca), sullo stack tecnologico esistente, sui requisiti di storage e sul fatto che tu abbia bisogno di capacità di ricerca ibrida o di ottimizzazione dei carichi di lavoro AI.
Leggi questo per avere una panoramica di Elasticsearch e MyScale, ma per valutarli devi farlo in base al tuo caso d'uso. Uno strumento che può aiutare in questo è VectorDBBench, uno strumento di benchmarking open-source per il confronto tra database vettoriali. Alla fine, un benchmarking approfondito con i tuoi dataset e i tuoi pattern di query sarà fondamentale per prendere una decisione tra questi due approcci potenti ma diversi alla ricerca vettoriale nei sistemi di database distribuiti.
Usare VectorDBBench open-source per valutare e confrontare i database vettoriali autonomamente
VectorDBBench è uno strumento di benchmarking open-source per utenti che necessitano di sistemi di archiviazione e recupero dei dati ad alte prestazioni, in particolare database vettoriali. Questo strumento consente agli utenti di testare e confrontare diversi sistemi di database vettoriali come Milvus e Zilliz Cloud (il Milvus gestito) utilizzando i propri dataset e di trovare quello adatto ai loro casi d'uso. Con VectorDBBench, gli utenti possono prendere decisioni basate sulle prestazioni effettive dei database vettoriali anziché su affermazioni di marketing o voci di corridoio.
VectorDBBench è scritto in Python e concesso in licenza con la licenza open-source MIT, il che significa che chiunque può usarlo, modificarlo e distribuirlo liberamente. Lo strumento è mantenuto attivamente da una community di sviluppatori impegnati a migliorarne funzionalità e prestazioni.
Scarica VectorDBBench dal suo repository GitHub per riprodurre i nostri risultati di benchmark o ottenere risultati sulle prestazioni con i tuoi dataset.
Dai un'occhiata rapida alle prestazioni dei database vettoriali più diffusi nella Leaderboard di VectorDBBench.
Leggi i seguenti blog per saperne di più sulla valutazione dei database vettoriali.
Ulteriori risorse su VectorDB, GenAI e ML
Continua a leggere
Stop Building AI Data Infra for the Wrong Stage
Learn how AI data infrastructure should evolve from prototype to enterprise scale, and when Vector Lakebase becomes the right architecture for AI apps.

Zilliz Cloud Introduces Advanced BYOC-I Solution for Ultimate Enterprise Data Sovereignty
Explore Zilliz Cloud BYOC-I, the solution that balances AI innovation with data control, enabling secure deployments in finance, healthcare, and education sectors.

How to Build RAG with Milvus, QwQ-32B and Ollama
Hands-on tutorial on how to create a streamlined, powerful RAG pipeline that balances efficiency, accuracy, and scalability using the QwQ-32B and Milvus.
The Definitive Guide to Choosing a Vector Database
Overwhelmed by all the options? Learn key features to look for & how to evaluate with your own data. Choose with confidence.


