ฉันค่อนข้างจะเป็นคนใหม่เพื่อ elasticsearch(แม้ว่ากับความเป็นธรรมของภาษา sql ประสบการณ์)และคือปัจจุบันกำลังพยายามอย่างหนักกับเรื่องที่เหมาะสมกับการค้นหาด้วยกัน ฉันต้อง 2 ตรรกะช่องข้อมูล isPlayer
แล้ว isEvil
นั่นเป็นรายการก็คือมือ true
หรือ false
ย จากนั้นฉันต้องการที่จะแยกของฉันวันที่เข้าไปใน 4 กกลุ่ม:
- isPlayer:เรื่องจริง isEvil:เรื่องจริง
- isPlayer:เรื่องจริง isEvil:ปลอม
- isPlayer:ผิ isEvil:เรื่องจริง
- isPlayer:ผิ isEvil:ปลอม
พวกกลุ่มฉันอยากจะแบบสุ่มแบบภายในตัวเองแล้วให้แนบเป็นสิ่งที่แนบมาด้วยที่พวกเขาเป็นหนึ่งนานมารายชื่อที่ฉันสามารถ paginate. ฉันอยากจะทำอย่างนั้นอยู่ในการสืบค้นที่นั่นดูเหมือนที่"ถูก"ทางที่จะทำอย่างนี้ตั้งแต่ฉันจะทำมันเหมือนๆกันในภาษา sql. อยู่ในรายชื่อคนกลุ่มต้องจัดเรียงเรียบร้อยลำดังนั้นคนแรกรายการทั้งหมดของกลุ่ม 1 ในแบบสุ่มลำดับแล้วล่ะก็งั้นมันก็เป็นสิ่งรายการของกลุ่ม 2 ในการสุ่มลำดับแล้วล่ะก็งั้นมันก็เป็นสิ่งรายการของกลุ่ม 3 คนเป็นต้น . มันเป็นจำเป็นต้องว่าความไร้แบบแผนของการเรียงลำดับคือ reproducible ถ้าให้เหมือนกั inputs ดังนั้นถ้าเรียงลำดับไอคอนเป็นเรื่องเกี่ยวกับพว random_score
เข้าท่าดีนิเราจะทำทุกอย่างที่เราทำฉันจะใช้เมล็ดพันธ์สำหรับความไร้แบบแผน.
ฉันสามารถสร้างเดียวกับการค้นหา,แต่ยังไงฉันรวม 4?
ที่เข้ามาใกล้แล้วผมเจอตอนนี้ MultiSearch และ Disjunction แม็กซ์กับการค้นหา. MultiSearch ดูเหมือนมัน ไม่สนับสนุน Pagination. เกี่ยวกับ Disjunction แม็กซ์กับการค้นหามันอาจจะเป็นว่าฉันหายตัวไปในป่าเพื่อที่ต้นไม้พวกนั้นแต่ฉันกำลังพยายามอยู่ในค subqueries เป็นโดยบังเอิญจัดเรียงเรียบร้อยเท่านั้นภายในตัวเองก่อนที่ appending พวกเขาให้คนอื่น
นี่ฉันเขียนนัดเดียวกับการค้นหาสำหรับตอนนี้ไม่มี Disjunction Max Query
เผื่อมันจะช่วย:
{
"query": {
"bool": {
"should": [
{
"term": {
"isPlayer": true
}
},
{
"term": {
"isEvil": true
}
}
]
}
}
}