2011-10-21 8 views
9

I Ho un indice Solr che memorizza il prezzo in un campo multivalore per ciascun prodotto.Ordinamento con campo multivalore in Solr

Devo ordinare il risultato impostato per Prezzo dove il prezzo è da basso a alto e da alto a basso.

Provo a utilizzare l'ordinamento sul prezzo che sta visualizzando Errore Non è possibile ordinare su multivalore = Campi reali.

di seguito è il mio solr XML

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

in schema.xml

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

In C# Codice

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

Qualcuno può spiegare con qualche buon esempio?

risposta

14

L'ordinamento su campi multivalore non funziona correttamente con Solr.

Documentation

ordinamento può essere fatto sul "punteggio" del documento, o su qualsiasi multivalore = = campo "false" indicizzato "vero" purché campo o è non token (cioè: non ha Analyzer) o utilizza un analizzatore che solo produce un solo termine (vale a dire: usa il KeywordTokenizer)

Quando si desidera ordinare i prodotti da basso ad alto o verso il basso, quale prezzo sarà Solr scegliere? A partire dall'esempio hai un prezzo di vendita di 0 e 195?

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

L'opzione si deve salvare il più alto e il più basso prezzo di vendita come campi valutati singoli e utilizzare quei campi per l'ordinamento.

highest_sell_price=195 
lowest_sell_price=0 

e utilizzare questi campi per l'ordinamento.

+0

se scelgo dal basso al massimo il prezzo minimo e dal più alto al più basso. – Ashutosh

+1

Aggiornato la risposta, non sembra esserci un modo diretto per farlo. – Jayendra

+0

Grazie per la tua risposta rapida. Ho anche pubblicato una nuova domanda per favore suggeriscimi con un esempio. http://stackoverflow.com/questions/7846018/data-import-in-solr-from-multiple-entity – Ashutosh