A cosa serve utilizzare sia ElasticSearch sia un database Nosql separato? Non è possibile utilizzare Elasticsearch come database e per l'indicizzazione della ricerca?Database Elasticsearch e NoSql
risposta
Sì, è possibile utilizzare ElasticSearch come origine dati oltre che come indice.
Per impostazione predefinita, ogni documento inviato al sistema ElasticSearch è indicizzato e, inoltre, il documento originale viene memorizzato. Ciò significa che ogni volta che si esegue una query su ElasticSearch è possibile recuperare anche il documento JSON originale che è stato indicizzato.
Se si dispone di documenti di grandi dimensioni e si desidera poter recuperare una quantità minore di dati, quindi quando è possibile utilizzare l'API di mappatura per impostare "archivio" su "sì" per campi specifici, quindi utilizzare i "campi" chiave per estrarre campi specifici che potreste desiderare.
Nel mio sistema ho il completamento automatico dell'indirizzo e recupero solo il campo dell'indirizzo di una proprietà. Ecco un esempio dal mio sistema:
_search?q=FullAddress:main&fields:FullAddress
Quindi quando un utente seleziona l'indirizzo, estraggo l'intero documento JSON (insieme ad altri).
Nota:
- Non si può fare gli aggiornamenti, come è possibile in SQL (aggiornare tutti elementi soddisfano una query per aumentare un attributo, diciamo)
- È possibile, tuttavia, aggiungere un nuovo documento e sostituire quello esistente nell'ID che desideri aggiornare. La ricerca elastica incrementa una proprietà _version su ciascun documento che può essere utilizzata dallo sviluppatore per rafforzare la concorrenza ottimistica, ma non mantiene una cronologia delle versioni separata di ogni documento. È possibile recuperare solo la versione più recente di un documento.
È sicuro interrogare Elasticsearch direttamente dal lato client, e anche se volessi tenere traccia delle query per utente, avrò bisogno di implementare ElasticJs sul lato server (nodejs) o no ?? –