ฉันคิดว่าคุณทำสิ่งที่สับสนในคำถามของคุณ Lucene (ฉันไม่รู้อะไรเกี่ยวกับ Lucene, NET แต่ฉันคิดว่าเหมือนกัน) เป็นห้องสมุดที่ใช้ในการวิเคราะห์แยกโทเค็นและจัดเก็บเอกสารเพื่อที่จะสามารถสืบค้นและเรียกดูได้ในภายหลัง Lucene มีรูปแบบที่ค่อนข้างเก่า แต่มีประสิทธิภาพมันใช้ต้นไม้แบบคว่ำเพื่อค้นหาและดึงเอกสาร หากไม่มีรายละเอียดเพิ่มเติมเอกสารทั้งหมดจะถูกแบ่งเป็นโทเค็น (ข้อกำหนด) และสำหรับแต่ละเทอมจะได้รับการปรับปรุงโครงสร้างข้อมูลซึ่งจัดเก็บเอกสารทั้งหมดที่มีคำที่กำหนด เนื่องจากโครงสร้างข้อมูลสามารถใช้ BTree, ตารางแฮชและในการแก้ไขครั้งใหญ่ครั้งล่าสุดคุณสามารถเสียบโครงสร้างข้อมูลของคุณเองได้
BTree (ดูหน้า Wikipediaสำหรับรายละเอียดเพิ่มเติม) เป็นโครงสร้างข้อมูลแบบต้นไม้ซึ่งเหมาะสำหรับการทำงานกับกลุ่มข้อมูลขนาดใหญ่และมักจะใช้สำหรับจัดเก็บโครงสร้างแบบต้นไม้ที่สั่งเหมือนดิสก์ สำหรับต้นไม้อื่นในหน่วยความจำจะทำงานได้ดีกว่า
Murmur hash (ดูหน้า Wikipediaสำหรับรายละเอียดเพิ่มเติม) เป็นฟังก์ชันแฮชที่ใช้ในตารางแฮช การนำไปใช้งานของตารางแฮชไม่สำคัญอาจเป็นการนำไปปฏิบัติแบบมาตรฐานหรือแบบแผนการแฮชเปิดขั้นสูงขึ้น แนวคิดก็คือตารางแฮชอนุญาตให้ผู้ใช้รับกุญแจได้อย่างรวดเร็วจากชุดแป้นที่ไม่ได้เรียงลำดับและสามารถตอบสนองต่องานเช่น: ส่วนสำคัญของชุดกุญแจนี้หรือไม่ ค่าใดเกี่ยวข้องกับคีย์นี้
กลับไปที่ปัญหาหลักของคุณ คุณมีหนึ่งไลบรารี (Lucene) และโครงสร้างข้อมูลโครงสร้างข้อมูลทั้งสองถูกใช้ใน Lucene ตอนนี้คุณเห็นว่ามันเป็นไปไม่ได้ที่จะตอบคำถามของคุณในเงื่อนไขเหล่านี้เนื่องจากพวกเขาไม่สามารถเปรียบเทียบกันได้
อย่างไรก็ตามเกี่ยวกับรอยเท้าและประสิทธิภาพของคำถาม ก่อนอื่นคุณต้องรู้ว่าคุณต้องใช้การดำเนินการประเภทใด
คุณต้องการเพียงรับค่าคีย์หรือคุณต้องการค้นหาองค์ประกอบทั้งหมดในช่วงหรือไม่ คุณต้องการคำสั่งซื้อหรือไม่? ถ้าคุณทำมากกว่าต้นไม้สามารถช่วยได้ หากคุณไม่ใช้งานมากกว่าตารางแฮชซึ่งเร็วกว่าสามารถใช้แทนได้
คุณมีข้อมูลจำนวนมากที่ไม่เหมาะกับหน่วยความจำหรือไม่? ถ้าใช่กว่าโซลูชันบนดิสก์จะช่วยได้ (เช่น BTree) หากข้อมูลของคุณพอดีกับหน่วยความจำกว่าใช้วิธีแก้ปัญหาในหน่วยความจำที่เร็วที่สุดและใช้ดิสก์เป็นที่เก็บข้อมูล (ด้วยโครงสร้างที่แตกต่างกันง่ายกว่ามาก)