Есть ли способ получить лучшие N документов для каждой сводки при использовании огранки сводки? - PullRequest
0 голосов
/ 24 января 2019

Я использую Pivot Faceting, как описано здесь: https://lucene.apache.org/solr/guide/6_6/faceting.html#Faceting-CombiningStatsComponentWithPivots

Мне нужно знать, возможно ли, чтобы для каждого листа в результирующем дереве были получены первые N документов.

Следуя примеру, приведенному выше по ссылке, я хочу получить список лучших N документов, возвращаемых для каждой сводной таблицы, как показано ниже.

Текущий результат:

...
"pivot": [
    {
        "field": "inStock",
        "value": true,
        "count": 8,
        "stats": {
            "stats_fields": {
                "price": {
                    "min": 74.98999786376953,
                    "max": 399.0
                }
            }
        }
    },
    {
        "field": "inStock",
        "value": false,
        "count": 4,
        "stats": {
            "stats_fields": {
                "price": {
                    "min": 11.5,
                    "max": 649.989990234375
                }
            }
        }
    }
],
...

Ожидаемый результат:

...
"pivot": [
    {
        "field": "inStock",
        "value": true,
        "count": 8,
        "docs": [
            {
                "name": "Product 1",
                "price": 45.3,
                "inStock": true
            },
            {
                "name": "Product 2",
                "price": 41.3,
                "inStock": true
            },
        ],
        "stats": {
            "stats_fields": {
                "price": {
                    "min": 74.98999786376953,
                    "max": 399.0
                }
            }
        }
    },
    {
        "field": "inStock",
        "value": false,
        "count": 4,
        "docs": [
            {
                "name": "Product A",
                "price": 25.3,
                "inStock": false
            },
            {
                "name": "Product B",
                "price": 11.3,
                "inStock": false
            },
        ],
        "stats": {
            "stats_fields": {
                "price": {
                    "min": 11.5,
                    "max": 649.989990234375
                }
            }
        }
    }
],
...
...