これは...理解できません。
私の知る限り、JSON範囲ファセットで返される可能性のある唯一のソート順は、「インデックス」順(または、より具体的には「バケット値の自然順序」)です。
つまり、あなたが求めていることは、本来なら得られるはずのものであり、あなたが得ていると言っているものは実際には得られないはずです。
(以下の例を参照)
あなたのソルジャ(SolrJ)のコードで、QueryResponseを消費している部分はどのようになっていますか?
curl 'http://localhost:8983/solr/techproducts/query?rows=0&omitHeader=true' -d '
{
"query": "*:*",
"facet": {
"prices": {
"type": "range",
"field": "price",
"start": 0,
"end": 100,
"gap": 20
}
}
}'
{
"response": {
"numFound": 32,
"start": 0,
"numFoundExact": true,
"docs": []
},
"facets": {
"count": 32,
"prices": {
"buckets": [
{
"val": 0.0,
"count": 5
},
{
"val": 20.0,
"count": 0
},
{
"val": 40.0,
"count": 0
},
{
"val": 60.0,
"count": 1
},
{
"val": 80.0,
"count": 1
}
]
}
}
}
curl 'http://localhost:8983/solr/techproducts/query?rows=0&omitHeader=true' -d'
{
"query": "*:*",
"facet": {
"prices": {
"type": "range",
"field": "manufacturedate_dt",
"start": "1900-01-01T00:00:00Z",
"end": "2200-01-01T00:00:00Z",
"gap": "+100YEARS"
}
}
}'
{
"response": {
"numFound": 32,
"start": 0,
"numFoundExact": true,
"docs": []
},
"facets": {
"count": 32,
"prices": {
"buckets": [
{
"val": "1900-01-01T00:00:00Z",
"count": 0
},
{
"val": "2000-01-01T00:00:00Z",
"count": 11
},
{
"val": "2100-01-01T00:00:00Z",
"count": 0
}
]
}
}
}
SolrJを使用して、期待されるバケットが期待される順序(バケット数ではなくバケット値順)で返されることを確認するテストがこちらです...
https://github.com/apache/solr/blob/releases/solr/9.0.0/solr/solrj/src/test/org/apache/solr/client/ref_guide_examples/JsonRequestApiTest.java#L573-L596
-Hoss
http://www.lucidworks.com/