2011-08-24 17 views
38

In Apache Solr perché dobbiamo sempre preferire il campo stringa sul campo di testo se entrambi i propositi risolvono?Apache Solr campo stringa o campo di testo?

Come la stringa o il testo influiscono sui parametri come la dimensione dell'indice, la lettura dell'indice, la creazione dell'indice?

risposta

83

I campi predefiniti nello schema solr sono molto diversi.

String memorizza una parola/frase come una stringa esatta senza eseguire la tokenizzazione, ecc. Comunemente utile per memorizzare corrispondenze esatte, ad esempio per sfaccettatura.

Text esegue in genere la tokenizzazione e l'elaborazione secondaria (ad esempio la parte inferiore della custodia ecc.). Utile per tutti gli scenari quando vogliamo abbinare parte di una frase.

Se il seguente esempio, "This is a sample sentence", è indicizzato ad entrambi i campi dobbiamo cercare esattamente il testo This is a sample sentence per ottenere un successo dal campo string, mentre può essere sufficiente per cercare sample (o anche samples con stemmning abilitato) a ottenere un successo dal campo text.

+0

puoi commentare anche la dimensione dell'indice, la lettura dell'indice, la creazione dell'indice? – Rahul

+2

Durante la tokenizzazione si otterrà una dimensione dell'indice più grande, quanto grande dipende dalla catena di elaborazione. La creazione di indici sarà anche leggermente più lenta poiché c'è più lavoro. La lettura/creazione dell'indice sarà ottima in entrambi i casi, quindi non preoccuparti se non si stanno avvicinando milioni di documenti. –

+1

Sto leggendo milioni di documenti ... non è un problema..so sto andando per campo stringa dal momento che sembra efficiente in tutti i casi E non ho bisogno di tokenizers/ricerca full text – Rahul