2011-10-21 33 views
9

Tengo un índice de Solr que almacena el precio en un campo multivalor para cada producto.Ordenar con campo de valores múltiples en Solr

Necesito ordenar el conjunto de resultados por precio donde el precio es bajo a alto y alto a bajo.

Intento utilizar la clasificación en el precio que muestra el error No se puede ordenar en campos multivalentes = True.

a continuación es mi Solr XML

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

en schema.xml

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

En C# Código

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

Puede alguien explicar con cierta buen ejemplo?

Respuesta

14

La ordenación en campos con varios valores no funciona bien con Solr.

Documentación

de clasificación puede ser hecho en la "puntuación" del documento, o en cualquier campo multivalor = "true" indexadas = "true" siempre que el campo es o bien no tokens (es decir: no tiene Analyzer) o utiliza un analizador que sólo produce un solo término (es decir: utiliza el KeywordTokenizer)

Cuando se desea ordenar los productos de menor a mayor o de mayor a menor, ¿qué precio escogerá Solr? A partir del ejemplo, ¿tiene un precio de venta de 0 y 195?

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

La opción que tiene para salvar el precio máximo y mínimo de venta como campos de valor único, y usar esos campos para la clasificación.

highest_sell_price=195 
lowest_sell_price=0 

y utilice estos campos para ordenar.

+0

si selecciono bajo a alto, entonces el precio mínimo y de mayor a menor que el precio máximo. – Ashutosh

+1

Actualizada la respuesta, parece que no hay una forma directa de hacerlo. – Jayendra

+0

Gracias por su respuesta rápida. También publiqué una nueva pregunta, por favor sugiérame con un ejemplo. http://stackoverflow.com/questions/7846018/data-import-in-solr-from-multiple-entity – Ashutosh

Cuestiones relacionadas