ข้อดีของ R-trees เมื่อเปรียบเทียบกับ geohashes


18

Geohashes มีการใช้กันอย่างแพร่หลายในผลิตภัณฑ์เช่น: Lucene, mongodb ฯลฯ และได้กลายเป็นหนึ่งในเทคโนโลยีที่สำคัญที่สุดของยุคปัจจุบัน

Geohashes ได้แทนที่ต้นไม้ R เก่าที่ดีหรือต้นไม้ R มีข้อดีใด ๆ เมื่อเทียบกับ Geohashes หรือไม่

คำตอบ:


11

Geohash เป็นวิธีที่ง่ายและมีประสิทธิภาพในการจัดทำดัชนีคุณลักษณะเชิงพื้นที่โดยเฉพาะคุณสมบัติจุด คุณลักษณะของเส้นและรูปหลายเหลี่ยมนั้นยากต่อการจัดทำดัชนี แต่สามารถทำได้ Geohash เป็นตารางขนาดคงที่แบบลำดับชั้นคงที่ซ้อนทับอยู่ด้านบนของพื้นผิวโลก เซลล์กริดในระดับลำดับชั้นเดียวกันจะไม่ทับซ้อนกัน R-Tree เป็นตารางแบบไดนามิกที่ตำแหน่งของเซลล์และขนาดเปลี่ยนแปลงขึ้นอยู่กับคุณสมบัติที่พวกเขากำลังจัดทำดัชนี คุณลักษณะดัชนี R-Tree กล่องขอบเขตและเซลล์จะเปลี่ยนแปลงทุกครั้งที่คุณแทรกและอัปเดตข้อมูล Geohash ส่วนใหญ่จะใช้สำหรับคุณสมบัติจุดดัชนีและเซลล์จะไม่เปลี่ยนแปลงเมื่อมีการแทรกและอัปเดตข้อมูล เซลล์ Geohash ไม่ได้ใช้คุณสมบัติเช่นต้นไม้ R

ข้อได้เปรียบบางอย่างของ geohash (เทียบกับ r-tree) อาจเป็น:

  • ใช้งานง่าย
  • ไม่มีการเสื่อมประสิทธิภาพด้วยจำนวนคุณสมบัติที่เพิ่มขึ้น
  • การค้นหาใกล้เคียง (จริงบางส่วน)

ข้อเสียของ geohash (เทียบกับ r-tree) บางอย่างอาจเป็น:

  • ความแม่นยำของตารางโดยพลการ
  • จัดทำดัชนี (และข้อความค้นหา) เส้นและคุณลักษณะรูปหลายเหลี่ยมได้ยากขึ้น
  • ขนาดของดัชนีอาจมีขนาดใหญ่ด้วยวิธีการบางอย่างของการทำดัชนีเส้นและรูปหลายเหลี่ยม
  • ตามข้อกำหนดมันสามารถใช้ได้กับระบบพิกัดละติจูด / ลองจิจูดเท่านั้นแม้ว่าจะใช้วิธีการเดียวกันกับระบบพิกัดอื่นได้เช่นกัน

ผลิตภัณฑ์ (ฐานข้อมูล) ที่คุณกล่าวถึงใช้ geohash เนื่องจาก geohash ส่วนใหญ่จะใช้สำหรับการทำดัชนีจุดและมีแอปพลิเคชันจำนวนมากที่ต้องการคุณสมบัติดังกล่าว เส้นและรูปหลายเหลี่ยมนั้นไม่ได้ถูกใช้บ่อย (ยกเว้นสำหรับแอพพลิเคชั่น GIS ที่แน่นอน) ดังนั้นทำไมต้องใส่ใจกับมัน เหตุผลอื่นคือแน่นอนใช้งานง่าย Geohash แปลงพิกัดสองมิติเป็นค่าหนึ่งมิติ สิ่งนี้เรียกว่าการลดมิติ ค่าหนึ่งมิตินั้นง่ายต่อการจัดทำดัชนีโดย b-tree มาตรฐานซึ่งส่วนใหญ่จะใช้ในผลิตภัณฑ์เหล่านั้น

ฉันต้องพูดถึงว่ามีอัลกอริทึมที่คล้ายกันกับ geohash แต่ส่วนใหญ่เป็นกรรมสิทธิ์และต้องการสิทธิ์ใช้งาน Geohash เป็นสาธารณสมบัติ นี่อาจเป็นสาเหตุของการใช้งานจำนวนมากในช่วงไม่กี่ปีที่ผ่านมา

อาจมีข้อดีและข้อเสียอื่น ๆ แต่สิ่งเหล่านี้เป็นสิ่งแรกที่อยู่ในใจของฉัน ฉันหวังว่าคำอธิบายของฉันจะช่วยได้เล็กน้อย


ฉันไม่เข้าใจว่าเพราะเหตุใด geohashes จึงให้ความแม่นยำของกริด คุณช่วยอธิบายด้วยตัวอย่างได้ไหม ฉันจะขอบคุณคุณสำหรับสิ่งเดียวกัน
Jannat Arora

1
Geohash แปลงพิกัดลองจิจูดและละติจูดเป็นสตริงหนึ่งมิติ ความยาวของสตริงนี้ผูกติดโดยตรงกับความแม่นยำที่แปลงแล้วของพิกัด โปรดดูunterbahn.com/2009/11/นี้ คุณสามารถดูว่าความยาวของสตริง geohash นั้นเชื่อมโยงกับความแม่นยำได้อย่างไร โดยทั่วไป geohash แปลงจุดเป็นพื้นที่รูปหลายเหลี่ยม (geohash หนึ่งตาราง) ขนาดของพื้นที่รูปหลายเหลี่ยมนี้ขึ้นอยู่กับความยาวของสตริง geohash และละติจูดที่คุณกำลังคำนวณ geohash
Mario Miler
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.