2011-08-24 35 views
38

Apache'de, her ikisi de çözülüyorsa neden her zaman metin alanı üzerinde dize alanını tercih etmemiz gerekiyor?Apache Solr dize alanı veya metin alanı?

Dize veya dizin, dizin boyutu, dizin okuma, dizin oluşturma gibi parametreleri nasıl etkiler?

cevap

83

Solr şemasında varsayılan olarak tanımlanan alanlar çok farklıdır. Bir sözcük/cümlenin, tonlama işlemi gerçekleştirmeden tam bir dizgede saklanmasını vb. Saklar. Tam eşleşmeleri, mesela, düzlem için saklamak için genel olarak faydalıdır. Tipik olarak tokenizasyon ve ikincil işlemeyi (alt-kasa vb. Gibi) gerçekleştirir. Bir cümlenin bir parçasını eşleştirmek istediğimizde tüm senaryolar için kullanışlıdır. o sample aramak için yeterli olabilir (hatta samples stemmning ile etkin) ise aşağıdaki örnek, "This is a sample sentence", nedeniyle, string alanından bir hit almak için tam metin This is a sample sentence aramak gerekir iki alana endeksli ise

text alanından bir vuruş olsun.

+0

Ayrıca indeks boyutu, indeks okuma, indeks oluşturma hakkında yorum yapabilir misiniz? – Rahul

+2

Jetonlama yaparken, işlem zincirinize ne kadar büyük bağlı olduklarında daha büyük bir dizin boyutu elde edersiniz. Daha fazla iş olduğu için dizin oluşturma da marjinal olarak yavaş olacaktır. Endeks okuma/oluşturma iki şekilde harika olacak, bu yüzden milyonlarca belgeye yaklaşmadıkça endişelenmeyin. –

+1

Milyonlarca belgeden okuyorum… bu bir problem değil .. her durumda verimli gibi göründüğünden string alanına gidiyorum VE tokenizatörlere/tam metin aramasına ihtiyacım yok – Rahul