เราดึงข้อมูลจาก Elasticsearch 2.1 และอนุญาตให้ผู้ใช้ไปยังหน้าผ่านผลลัพธ์ เมื่อผู้ใช้ร้องขอหมายเลขหน้าสูงเราจะได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
หน้าต่างผลลัพธ์ใหญ่เกินไปขนาดจาก + ต้องน้อยกว่าหรือเท่ากับ: [10000] แต่สูงกว่า [10020] ดู scroll api สำหรับวิธีที่มีประสิทธิภาพมากขึ้นในการร้องขอชุดข้อมูลขนาดใหญ่ ขีด จำกัด นี้สามารถกำหนดได้โดยการเปลี่ยนพารามิเตอร์ระดับดัชนี [index.max_result_window]
docu ยืดหยุ่นบอกว่านี่เป็นเพราะการใช้หน่วยความจำสูงและใช้ API การเลื่อน:
ค่าที่สูงกว่าที่สามารถใช้หน่วยความจำฮีปจำนวนมากต่อการค้นหาและต่อชาร์ดที่ดำเนินการค้นหา ปลอดภัยที่สุดที่จะปล่อยให้ค่านี้เนื่องจากเป็นการใช้ scroll api สำหรับการเลื่อนแบบลึก ๆhttps://www.elastic.co/guide/en/elasticsearch/reference/2.x/breaking_21_search_changes.html#_from_size_limits
สิ่งนี้คือฉันไม่ต้องการดึงชุดข้อมูลขนาดใหญ่ ฉันต้องการดึงข้อมูลชิ้นส่วนจากชุดข้อมูลซึ่งสูงมากในชุดผลลัพธ์เท่านั้น นอกจากนี้ docu แบบเลื่อนยังบอกว่า:
การเลื่อนไม่ได้มีไว้สำหรับคำขอของผู้ใช้แบบเรียลไทม์https://www.elastic.co/guide/en/elasticsearch/reference/2.2/search-request-scroll.html
สิ่งนี้ทำให้ฉันมีคำถาม:
1) การใช้หน่วยความจำจะลดลงจริงๆหรือไม่ (ถ้าเป็นเช่นนั้นเพราะเหตุใด) ถ้าฉันใช้ scrolling api เพื่อเลื่อนขึ้นไปที่ผลลัพธ์ 10020 (และไม่สนใจทุกอย่างที่ต่ำกว่า 10,000) แทนที่จะทำคำขอค้นหา "ปกติ" สำหรับผลลัพธ์ 10,000-10020
2) ดูเหมือนว่า API การเลื่อนจะไม่ใช่ทางเลือกสำหรับฉัน แต่ฉันต้องเพิ่ม "index.max_result_window" ใครมีประสบการณ์เกี่ยวกับเรื่องนี้บ้าง?
3) มีตัวเลือกอื่นในการแก้ปัญหาของฉันหรือไม่?
'Result window is too large, from + size must be less than or equal to: [10000] but was [47190]. See the scroll api for a more efficient way to request large data sets. This limit can be set by changing the [index.max_result_window] index level parameter.')
มันบอกว่ามี 4719 หน้า (ทุกหน้า 10 ผลลัพธ์) และฉันคิดว่าคำแนะนำของคุณใช้ได้ผล