나는 새로운 공정동 방법(지만 공정한 비트의 SQL 경험)이 현재 고민과 함께 넣고 적절한 쿼리를 함께. 저는 2boolean 분야 isPlayer
고 isEvil
는 항목이 하나 true
나 false
니다. 에 기반하는,내가 원하는 분 나의 데이터 집합으로 4 개의 그룹:
- isPlayer:true,isEvil:true
- isPlayer:true,isEvil:false
- isPlayer:false,isEvil:true
- isPlayer:false,isEvil:false
이러한 그룹 내가 원하는 무작위로 종류 내 자신,첨부해야 하나의 긴 목록할 수 있는 페이지를 매기. 하고 싶다는 내부에는 쿼리는 것처럼 보인다"올바른"방법을 이렇게 때문에,나는 그것을 마찬가지로서 SQL. 에서는 목록 그룹은 순으로 정렬,그래서 먼저 항목을의 그룹 1 임의의 순서,다음의 모든 항목은 그룹 2 임의의 순서,다음의 모든 항목은 그룹 3etc. . 그것은 필요한 임의의 정렬을 재현 가능한 주는 경우 동일한 입력하는 경우 정렬 기반 random_score
적인 것을 사용하여 종자 임의.
나를 구축할 수 있는 단일 쿼리지만,나는 어떻게 결합하 4?
으로 접근 방식 그 MultiSearch 및 분리 최대 Query. MultiSearch 인 을 지원하지 않는 매김. 에 관한 분리를 최대 쿼리를 수 있는 나무의 숲을 없지만,나는 고군분투하는 것에 하위에서 임의로 정렬된 내에서만 자신이 추가하기 전에 그들 중 하나다.
여기에 어떻게 쓰일에 대한 쿼리지 않고 지금 Disjunction Max Query
는 경우에,그것은 도움이됩니다:
{
"query": {
"bool": {
"should": [
{
"term": {
"isPlayer": true
}
},
{
"term": {
"isEvil": true
}
}
]
}
}
}