2011-10-21 13 views
9

Mam indeks Solr, który przechowuje cenę w polu wielowartościowym dla każdego produktu.Sortowanie za pomocą pola wielowartościowego w Solr

Potrzebuję posortować zestaw wyników według ceny, gdzie cena jest niska do wysokiej i wysoka do najniższej.

Próbuję użyć sortowania na Cena, która pokazuje Błąd Nie można sortować na wielowartościowych = Prawdziwych polach.

poniżej jest mój solr XML

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

w schema.xml

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

w C# kod

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) } }); 

Może ktoś wytłumaczyć z jakiegoś dobrego przykładu?

Odpowiedz

14

Sortowanie na polach wielowartościowych nie działa dobrze z Solr.

Dokumentacja

Sortowanie może odbywać się na „żywo” w dokumencie lub na dowolnym wielowartościowe = „false” indeksowanego = „true” polu pod warunkiem, że pole jest albo non-tokenized (tj: ma Analyzer) lub wykorzystuje Analyzer że tylko produkuje jeden termin (tj używa KeywordTokenizer)

Gdy chcesz, aby posortować produkty od niskiej do wysokiej lub wysokiej do niskiej, jaką cenę będzie Solr wybrać? Jak na przykładzie masz cenę sprzedaży równą 0, a także 195?

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

Opcja trzeba zachować najwyższą i najniższą cenę sprzedać jako pojedyncze pola cenionych i korzystać z tych pól do sortowania.

highest_sell_price=195 
lowest_sell_price=0 

i użyj tych pól do sortowania.

+0

jeśli wybiorę niską do wysokiej, a następnie minimalną i wysoką do niskiej, a następnie maksymalną cenę. – Ashutosh

+1

Zaktualizowano odpowiedź, wydaje się, że nie ma na to bezpośredniego sposobu. – Jayendra

+0

Dzięki za szybką odpowiedź. Dodałem również nowe pytanie, proszę, zasugeruj mi przykład. http://stackoverflow.com/questions/7846018/data-import-in-solr-from-multiple-entity – Ashutosh

Powiązane problemy