2011-11-03 26 views
7

Tôi có "text_general" lĩnh vực trong schema.xmlSolr sai loại trường văn bản

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

tôi đã được lưu trữ:

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

"câu thần chú" và "testata" lĩnh vực có một "text_general" kiểu.

tìm kiếm làm việc tốt cho tôi:

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

Nhưng với phân loại tồn tại một số vấn đề:

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

Nó trả về cho tôi kết quả này:

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

tôi don `t hiểu tại sao phân loại của tôi hoạt động không đúng cách. Nó sẽ trả lại cho tôi kết quả như sau:

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" 

Trả lời

20

Sắp xếp không hoạt động tốt trên các trường đa giá trị và được mã hóa.
testata đã được xác định với text_general loại trường, nó sẽ được mã hóa và do đó sắp xếp sẽ không hoạt động tốt.

Tài liệu - Sắp xếp có thể được thực hiện trên "điểm" của tài liệu hoặc trên bất kỳ trường đa giá trị nào "" được lập chỉ mục = "đúng" với điều kiện trường đó không được mã hóa (ví dụ: không có Trình phân tích) hoặc sử dụng một Analyzer mà chỉ tạo ra một thuật ngữ duy nhất (ví dụ: sử dụng KeywordTokenizer)

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

sử dụng chuỗi như kiểu trường và sao chép các lĩnh vực tiêu đề vào trường mới.

+0

+1. Đó là những gì tôi đã kết thúc làm để bật "sắp xếp" trên các trường đa giá trị: có giá trị đầu tiên của mỗi người được sao chép trong trường chuỗi tương ứng và sắp xếp trên các trường đó. –

+0

Cảm ơn bạn! Tôi đã sử dụng loại trường "khớp một phần" và không thể tìm ra lý do tại sao kết quả của tôi bị trả lại hoàn toàn chưa được phân loại. Chuyển sang một trường văn bản thông thường cố định lên :) – masterchief

Các vấn đề liên quan