2011-11-03 13 views
7

मेरे पास है "text_general" Schema.xml में क्षेत्रSolr गलत तरह पाठ फ़ील्ड

<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> 

मैं संग्रहीत किया है दस्तावेज:

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)" 

"जादू" और "testata" फ़ील्ड एक "text_general" है प्रकार।

मेरे लिए काम ठीक सर्च कर रहे हैं:

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

यह मुझे इस परिणाम देता है:

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)" 

मैं क्यों समझ में डॉन 'टी

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

लेकिन छंटाई के साथ कुछ समस्या मौजूद है मेरी सॉर्टिंग ठीक से काम नहीं कर रही है। यह होना चाहिए देता है मुझे इस तरह परिणाम:

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

    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" 

उत्तर

20

छंटाई बहुमान और tokenized खेतों पर अच्छा काम नहीं करता।
testatatext_general फ़ील्ड प्रकार के साथ परिभाषित किया गया है, इसे टोकननाइज्ड किया जाएगा और इसलिए यह प्रकार ठीक काम नहीं करेगा।

प्रलेखन - दस्तावेज़ के "स्कोर" या किसी भी बहुवर्तित = "झूठी" अनुक्रमित = "सत्य" फ़ील्ड पर सॉर्टिंग किया जा सकता है बशर्ते कि फ़ील्ड या तो गैर-टोकननाइज्ड (यानी: कोई विश्लेषक नहीं है) या उपयोग एक विश्लेषक कि केवल एक ही अवधि का उत्पादन: फ़ील्ड के रूप में (यानी KeywordTokenizer का उपयोग करता है)

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

उपयोग स्ट्रिंग और नए क्षेत्र में शीर्षक क्षेत्र कॉपी।

+0

+1। बहुगुणित क्षेत्रों पर "सॉर्ट" को सक्षम करने के लिए मैंने यही किया है: प्रत्येक के पहले मान को संबंधित स्ट्रिंग फ़ील्ड में डुप्लिकेट किया गया था, और उन पर सॉर्ट करें। –

+0

धन्यवाद! मैं एक "आंशिक मिलान" फ़ील्ड प्रकार का उपयोग कर रहा था और यह पता नहीं लगा सका कि मेरे परिणाम पूरी तरह से निरस्त क्यों लौट रहे थे। नियमित पाठ फ़ील्ड पर स्विच करना ठीक है :) – masterchief

संबंधित मुद्दे