Utilizzo e gioco con Lucene per indicizzare i dati e ho riscontrato alcuni strani comportamenti relativi a DocValues Fields.lucene Fields vs. DocValues
Quindi, Qualcuno potrebbe semplicemente spiegare la differenza tra un campo regolare documento (come Stringfield, TextField, IntField etc.) e DocValues campi (come IntDocValuesField, SortedDocValuesField (i tipi sembra avere un cambiamento in Lucene 5.0) ecc.)?
Innanzitutto, perché non riesco ad accedere a DocValues utilizzando document.get (nome campo)? se sì, come posso accedervi?
In secondo luogo, ho visto che in Lucene 5.0 alcune funzionalità sono cambiate, ad esempio l'ordinamento può essere fatto solo su DocValues ... perché è così?
In terzo luogo, DocValues può essere aggiornato, ma i campi regolari non può (si deve eliminare e aggiungere l'intero documento) ...
Inoltre, e forse più importante, quando dovrei usare DocValues e quando i campi regolari?
Joseph
grazie, ma questo mi avvertisse realmente rispondere alla domanda. So che sono più efficienti nell'ordinamento ... ma non spiega lo strano comportamento. come faccio a recuperare il loro valore dal documento? document.get (fieldname) non sembra funzionare, a che serve se non riesco ad accedervi? –
@YossiVainshtein Risponde alla maggior parte delle tue domande: il tuo campo è memorizzato? Solo i campi memorizzati restituiranno un valore; docValues è una strategia di indicizzazione e non dovrebbe influire sulla recuperabilità. Includere un esempio minimo del problema se si dispone di codice effettivo che si sta tentando di far funzionare. – MatsLindh
Ho riscontrato problemi con la comprensione di quando e quando non utilizzare DocValues e la documentazione di Apache Solr in generale. È fastidioso per qualcuno affermare che la maggior parte di queste domande è _quickly_ risposta facendo riferimento a SolrWiki o a una ricerca web. Lo stai dicendo perché non pensi che il poster abbia fatto la dovuta diligenza prima di chiederlo, o perché pensi che sia un fatto utile da sapere? Se è il primo, è a dir poco offensivo, e fidati di me, per molte persone, ecco perché leggono la documentazione prima di passare allo stackoverflow. –