Ответ 1
Я ответил на ваш пост в списке рассылки, проблема связана с тем, что org.elasticsearch.common.Digest
был удален из elasticsearch. Я не думаю, что вы можете заменить его на одну строку, возможно, проще написать родной Java script, если вы знакомы с Java.
С другой стороны, я вижу, что у вас есть несколько подробностей в вашем вопросе здесь, и мне было интересно, можно ли даже избежать сортировки script для достижения того, чего вы хотите.
Ваш usecase заставляет задуматься о недавно добавленном запросе rescore, который позволяет сбрасывать верхние результаты K с использованием вторичного запроса. Учтите, что расстрел выполняется на каждом осколке. Поэтому, если вы попросите первые 10 документов, расследование произойдет в первых 10 документах на каждый осколок, и это повлияет на 10 лучших документов, которые будут отобраны на этапе сокращения. Похоже, вы больше искали изменение порядка возвращаемых документов, в то время как с запросом на rescore эти документы могли бы измениться из-за самого процесса rescore.
Приходящая версия, 0.90.4, также будет содержать произвольное сеянное упорядочение, которое должно помочь вам в случайном аспекте вашей сортировки. Посмотрите связанную проблему, чтобы узнать больше.
Было бы здорово объединить запрос rescore с запросом на оценку функции, который допускает случайный порядок.