Elasticsearch: случайная оценка по вложенному запросу с внутренними попаданиями - PullRequest
0 голосов
/ 05 февраля 2019

У меня проблемы с получением случайного набора документов при выполнении вложенного запроса с inner_hits.Мне нужно, чтобы документы были случайными, а не внутренние хиты.

Вот сопоставление для примеров:

{
    "mappings": {
        "doc": {
            "properties": {
                "faces": {
                    "type": "nested",
                    "properties": {
                        "cluster_id": {
                            "type": "integer"
                        }
                    }
                }
            }
        }
    }
}

Теперь, как проверка работоспособности, следующий запрос возвращает случайныйнабор документов:

{
    "query": {
        "function_score": {
            "random_score": {},
            "query": {
                "match_all": {}
            }
        }
    }
}

Но теперь, если я попытаюсь изменить это, чтобы вернуть внутренние попадания для определенного идентификатора кластера, то результаты больше не будут случайными.Вот запрос:

{
    "query": {
        "function_score": {
            "random_score": {},
            "query": {
                "nested": {
                    "path": "faces",
                    "query": {
                        "bool": {
                            "filter": [
                                {
                                    "term": {
                                        "faces.cluster_id": 0
                                    }
                                }
                            ]
                        }
                    },
                    "inner_hits": {}
                }
            }
        }
    }
}

Я также пытался обернуть бит запроса вложенного запроса в function_score, но результаты те же, случайного упорядочения нет.

Любая помощь значительнооценили!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...