나는 Elasticsearch에 흥미로운 정렬 문제가 있습니다.스크립트를 사용하여 날짜의 버킷을 정렬하는 Elasticsearch
Item => A B C D E F
Time => -3 -2 -1 0 1 2 3
상기 그래픽 I 데이터의 6 개 항목 A-F를 가지고 있다고 나타내고, 그들 각각은 현재 시간 (T0)이고, -3, 3 사이의 특정 시간에 발생 : I는 다음과 같은 데이터를 갖는다.
말을하는 것입니다DEFCBA
, 미래에 일어나는 모든 항목이 결과에 먼저 배치하고 정렬됩니다 : 나는 다음과 같은 순서로 항목을 정렬 Elasticsearch의 종류를 만들기 위해 찾고
오름차순으로, 과거에 발생한 모든 항목이 결과에서 두 번째로 위치하며 내림차순으로 정렬됩니다.
sort: [
{
_script: {
type: 'number',
script: {
lang: 'painless',
inline: "if (doc['item_date'].value - params.current_time > 0) {return 1;} else {return 0}",
params: {
current_time,
},
},
order: 'desc',
},
},
{ item_date: { order: 'desc' } },
]
위의 두 번째, 먼저 과거의 항목을 미래 항목을 배치 할 수 있지만, 오름차순으로 미래 항목을 주문하지 않는다 (이것은 과거를 정렬합니다
지금까지, 나는 다음과 같은 종류가 항목 및 내림차순으로 해당 항목의 모든 항목).
첫 번째 스크립트의 결과를 기반으로 과거 항목과 별도로 미래 항목을 정렬하기 위해 작성할 수있는 스크립트가 확실하지 않습니다.
도움을 주시면 감사하겠습니다.
딱! 고맙습니다! –