Sto lavorando a un progetto che si basa su Lucene.NET. Fino a questo punto, ho avuto una classe che aveva semplici proprietà nome/valore (come int ID {get; set;}). Tuttavia, ora ho bisogno di aggiungere una nuova proprietà al mio indice. La proprietà è un tipo di elenco. Fino a questo punto, ho aggiornato il mio indice in questo modo ...Memorizzazione dell'elenco di stringhe in Lucene.NET
MyResult result = GetResult();
using (IndexWriter indexWriter = Initialize())
{
var document = new Document();
document.Add(new Field("ID", result.ID.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZE));
indexWriter.AddDocument(document);
}
Ora, MyResult ha una proprietà che rappresenta una lista. Come lo inserisco nel mio indice? Il motivo per cui ho bisogno di aggiungerlo al mio indice è che posso rimuoverlo più tardi.
Hai mai considerato l'utilizzo di qualcosa che memorizza schemi, documenti non strutturati anziché solo coppie chiave-valore? Questo risolverebbe il tuo problema (alcuni esempi, RavenDB, elasticsearch, MongoDB). In caso contrario, è necessario generare una notazione per la chiave che contiene le informazioni dell'array e le informazioni di proprietà annidate (abbastanza facile, ma una PITA e come indicato sopra, ci sono cose che lo fanno già). – casperOne
Cosa contiene la tua lista? Ha bisogno di essere ricercabile? –
L'elenco NON deve essere ricercabile. –