2011-11-03 18 views
7

Ben "text_general" alanıSolr yanlış sıralama metin alanları

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer type="index"> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
    <analyzer type="query"> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/><filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
</fieldType> 

Ben sakladığınız belgeler:

document1: 
    spell = "contro un indice generale dei prezzi salito del 2, 1%. Rincari ben piщ evidenti, tra i prodotti da bar" 
    testata = "Mattino di Padova (Il)" 

document2: 
    spell="con i prodotti di qualitа vinco la crisi dei consumi Farinetti: con" 
    testata = "Italia Oggi" 

document3 
    spell = "convenienza Il 2008 porta i primi aumenti nei pre zi L'Ipercoop cresce il listino" 
    testata = "Nuova Ferrara (La)" 

"büyü" ve "testata" alanları bir "text_general" vardır yazın.

benim için çalışıyor cezası aranıyor:

http://localhost:8080/solr/select?q={!type=edismax qf=spell v='co*'}&sort=testata desc 

Bana bu sonuç döndürür:

document1: 
     spell = "contro un indice generale dei prezzi salito del 2, 1%. Rincari ben piщ evidenti, tra i prodotti da bar" 
     testata = "Mattino di Padova (Il)" 

    document2: 
     spell="con i prodotti di qualitа vinco la crisi dei consumi Farinetti: con" 
     testata = "Italia Oggi" 

    document3 
     spell = "convenienza Il 2008 porta i primi aumenti nei pre zi L'Ipercoop cresce il listino" 
     testata = "Nuova Ferrara (La)" 

neden anlamıyorlar

http://localhost:8080/solr/select?q={!type=edismax qf=spell v='co*'} 

Fakat sıralama ile

biraz problem var sıralamam düzgün çalışmıyor. Bana böyle bir sonuç verir:

cevap

20

Sıralama, çok değerli ve belirteçli alanlarda iyi çalışmaz.
testata, text_general alan tipiyle tanımlandığı gibi, bu kodlanmış olacak ve bu nedenle sıralama düzgün çalışmayacaktır. veya kullanımları: -

Belgeleme belgenin "puanı" üzerinde yapılan veya herhangi bir çok değerli = "false" endeksli = "true" alanına bu alanı sağlanabilir sıralama ya olmayan simgeleþtirilmiþ (hiçbir Analyzer vardır yani) 'dir sadece tek Terim üreten bir Analyzer: alan türü olarak

http://wiki.apache.org/solr/CommonQueryParameters#sort

Kullanım dize (yani KeywordTokenizer kullanır) ve yeni alana başlık adresini kopyala.

+0

+1

. Birden çok değer alanlı alanlarda "sırala" özelliğini etkinleştirmek için yaptığım işte böyle bitti: her birinin ilk değeri karşılık gelen bir dize alanında çoğaltılmış ve bunları sıraladım. –

+0

Teşekkürler! "Kısmi eşleme" alan türü kullanıyordum ve sonuçların neden tamamen sıralanmamış olduğunu anlayamadım. Düzenli bir metin alanına geçmek bunu düzeltdi :) – masterchief