2011-10-21 47 views
9

Tôi có chỉ mục Solr lưu trữ Giá trong trường đa giá trị cho từng Sản phẩm.Sắp xếp với Trường đa giá trị trong Solr

Tôi cần sắp xếp kết quả được đặt theo Giá nơi giá thấp đến cao và cao đến thấp.

Tôi cố gắng sử dụng sắp xếp theo Giá mà nó hiển thị Lỗi Bạn không thể sắp xếp trên nhiều trường giá trị = True.

dưới đây là Solr tôi XML

<arr name="sellprice"> 
<float>195.0</float> 
<float>136.5</float> 
<float>10.0</float> 
</arr> 

trong schema.xml

<field name="sellprice" type="float" indexed="true" stored="true" multiValued="true"/> 

Trong C# Mã

ISolrQueryResults<ProductTest2> powerArticles = solr.Query(new 
SolrQuery("WebCategory_Id:10") && new SolrQueryInList("FilterID", 
    146), new QueryOptions { FilterQueries = new[] { new 
SolrQueryByRange<decimal>("sellprice", 10, 40) }, OrderBy = new[] { 
    new SolrNet.SortOrder(sellprice, desc) } }); 

ai đó có thể giải thích với một số ví dụ điển hình?

Trả lời

14

Sắp xếp trên các trường đa giá trị không hoạt động tốt với Solr.

Documentation

Việc sắp xếp có thể được thực hiện trên các "điểm" của các tài liệu, hoặc trên bất kỳ multivalued = = trường "false" lập chỉ mục "true" cung cấp lĩnh vực đó là một trong hai phi tokenized (ví dụ: không có Analyzer) hoặc sử dụng một Analyzer rằng chỉ tạo ra một thuật ngữ duy nhất (ví dụ: sử dụng KeywordTokenizer)

Khi bạn muốn sắp xếp các sản phẩm từ thấp đến cao hoặc từ cao xuống thấp, những gì giá sẽ Solr chọn? Từ ví dụ bạn có giá Bán là 0 cũng như 195?

The function queries also do not allow to use max or min on the multivalued fields.

Các tùy chọn mà bạn có để lưu các giá bán cao nhất và thấp nhất là các lĩnh vực có giá trị duy nhất, và sử dụng các lĩnh vực này để phân loại.

highest_sell_price=195 
lowest_sell_price=0 

và sử dụng các trường này để sắp xếp.

+0

nếu tôi chọn từ thấp đến cao thì giá tối thiểu và cao xuống thấp thì giá Tối đa. – Ashutosh

+1

Cập nhật câu trả lời, dường như không có cách nào trực tiếp để thực hiện việc này. – Jayendra

+0

Cảm ơn bạn đã phản hồi nhanh. Tôi cũng đã đăng một câu hỏi mới xin vui lòng đề nghị tôi với một ví dụ. http://stackoverflow.com/questions/7846018/data-import-in-solr-from-multiple-entity – Ashutosh

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