ฉันหยุดใช้ Windows Search และสร้างของตัวเองแทน

/th/images/custom-windows-search-replacement.jpg

เรามีช่วงเวลาในชีวิตเสมอเมื่อเรารีบค้นหาเอกสาร แต่เอกสารนั้นถูกฝังอยู่ที่ไหนสักแห่งในโฟลเดอร์ดาวน์โหลดและเราไม่เคยได้รับทันเวลา การค้นหาไฟล์ในโฟลเดอร์ดาวน์โหลด เอกสาร และ OneDrive ถือเป็นงานที่น่าเบื่อเสมอ

เมื่อเวลาผ่านไป โฟลเดอร์ Downloads ของฉันได้กลายเป็นหนึ่งในโฟลเดอร์ที่ใหญ่ที่สุดในระบบของฉัน ไม่ใช่ตามขนาด แต่ตามจำนวนไฟล์ที่อยู่ภายใน ในแต่ละวัน ฉันจะดาวน์โหลดรูปภาพ PDF และไฟล์อื่นๆ ที่เกี่ยวข้องกับงาน ในช่วงเย็น รายการจะเพิ่มขึ้นจนทำให้การค้นหาสิ่งที่ดาวน์โหลดมาก่อนหน้านี้ทำได้ยาก

Windows Search ควรจะทำให้กระบวนการค้นหาไฟล์ง่ายขึ้น แต่มันทำงานในลักษณะที่แปลก บางครั้งก็พบไฟล์ที่ฉันต้องการทันที บางทีก็ค้นหาไปเรื่อยๆแต่ก็ไม่เจอจริงๆ ผลลัพธ์ที่ได้ไม่สอดคล้องกันเสมอไป

ความไม่สอดคล้องกันและความหงุดหงิดทำให้ฉันสงสัยว่าการค้นหาไฟล์ทำงานอย่างไร ในที่สุดความอยากรู้อยากเห็นนี้ทำให้ฉันลองทำอะไรที่แตกต่างออกไปซึ่งแทนที่ Windows Search ด้วยระบบที่ฉันสร้างขึ้นเอง

/th/images/local-whisper-model.jpg

ที่เกี่ยวข้อง

Local Whisper ถอดเสียงการประชุมที่ใช้เวลานานเป็นชั่วโมงในไม่กี่นาทีโดยไม่ต้องส่งคำใด ๆ ไปยังเซิร์ฟเวอร์ใด ๆ

ฮาร์ดแวร์สมัยใหม่ทำให้ AI ในท้องถิ่นใช้งานได้จริงอย่างน่าประหลาดใจ

เมื่อการค้นหาของ Windows หยุดมีประโยชน์

เมื่อการค้นหาหยุดความน่าเชื่อถือ

/th/images/windows-search-inconsistency.jpg

Windows Search ทำงานไม่สอดคล้องกัน โดยปกติแล้ว การพิมพ์ตัวอักษรสองสามตัวบนแถบค้นหาก็เพียงพอแล้วที่จะค้นหาไฟล์ ระบบปฏิบัติการได้รับการออกแบบมาให้ทำเช่นนั้น แต่ Windows Search ไม่เคยให้ผลลัพธ์ที่สม่ำเสมอ บางครั้งผลการค้นหาจะปรากฏขึ้นทันที ในบางครั้งอาจใช้เวลานานเกินไปหรือไม่พบไฟล์เลย เมื่อเวลาผ่านไป เมื่อขนาดโฟลเดอร์ใหญ่ขึ้น การได้รับผลลัพธ์ที่เชื่อถือได้ก็จะยากขึ้น

ในตารางประจำวันของฉัน ฉันจัดการกับไฟล์ประเภทต่างๆ เช่น รูปภาพ ภาพหน้าจอ PDF และไฟล์โครงการ จำนวนสามารถเติบโตได้อย่างรวดเร็ว บางครั้งเมื่อสิ้นวัน จำนวนก็อาจถึงหลายร้อยไฟล์ การค้นหาไฟล์ที่ดาวน์โหลดมาเมื่อสองสามวันก่อนด้วยตนเองกลายเป็นเรื่องที่เป็นไปไม่ได้ ฉันต้องพึ่งพา Windows Search เพื่อค้นหา สำหรับไฟล์ล่าสุดต้องรอการจัดทำดัชนี บางครั้งฉันต้องค้นหามากกว่าหนึ่งครั้งจึงจะพบ พูดง่ายๆ ก็คือฉันได้ลองแก้ไขตามปกติทั้งหมดแล้ว แต่ความไม่สอดคล้องกันนั้นก็จะสม่ำเสมออยู่เสมอ

สุดท้าย แทนที่จะพยายามแก้ไขปัญหา Windows Search อีกครั้ง ฉันใช้เส้นทางอื่นและเริ่มสงสัยว่าปัญหาเกิดจากระบบการค้นหาเองหรือไม่

เปลี่ยนเซิร์ฟเวอร์ Debian ขนาดเล็กให้เป็นสมองแห่งการค้นหา

เซิร์ฟเวอร์เล็กๆ ตัวเดียวเปลี่ยนแปลงทุกอย่าง

/th/images/meilisearch-logs.jpg

ในขณะที่ค้นคว้าเครื่องมือค้นหาต่างๆ สิ่งหนึ่งที่ฉันสังเกตเห็นก็คือเครื่องมือค้นหาต้องอาศัยไฟล์การจัดทำดัชนี ตัวสร้างดัชนีเป็นหัวใจของเครื่องมือค้นหา และไม่เชื่อมโยงกับระบบปฏิบัติการใดๆ โดยเฉพาะ แม้แต่เซิร์ฟเวอร์ขนาดเล็กก็สามารถทำงานเดียวกันได้ การตระหนักรู้ดังกล่าวเป็นแรงบันดาลใจให้ฉันสร้างตัวสร้างดัชนีแบบกำหนดเอง

ฉันเป็นเจ้าของเซิร์ฟเวอร์โฮมแล็บ มันทำงานบน Debian แบบ Bare Metal และอะไรจะดีไปกว่าการสร้างการตั้งค่าสำหรับตัวสร้างดัชนีมากกว่าเซิร์ฟเวอร์ Linux? เซิร์ฟเวอร์มีทรัพยากรเพียงพอที่จะโฮสต์ตัวทำดัชนีแบบไลท์เวท หน้าที่เดียวคือโฮสต์ตัวสร้างดัชนี ไฟล์จะยังคงอยู่ใน Windows PC ในขณะที่โฟลเดอร์ติดตั้งบนเซิร์ฟเวอร์โดยใช้ SMB เซิร์ฟเวอร์จะสแกนเท่านั้น

ฉันสร้างสคริปต์ Python ขนาดเล็กที่สแกนโฟลเดอร์ บันทึกชื่อไฟล์ และจัดเก็บข้อมูลเมตา เช่น ชื่อ เส้นทาง และตำแหน่ง ฉันตั้งค่างาน cron แบบง่าย ๆ เพื่อรันสคริปต์ Python ทุก ๆ 10 นาทีเพื่อสร้างดัชนีไฟล์ใหม่ แม้ว่าจะมีโซลูชันขั้นสูงให้เลือกใช้มากขึ้น เช่น การจัดทำดัชนีส่วนเพิ่มและการเฝ้าดูไฟล์แบบเรียลไทม์ เช่น inotify และ fswatch วิธีการเหล่านี้มีประโยชน์มากกว่าในสภาพแวดล้อมที่ใหญ่กว่า


import osimport reimport meilisearchclient = meilisearch.Client("http://127.0.0.1:7700")index = client.index("files")# Scanning mounted SMB paths for metadatafor base_path in "/mnt/windows/Downloads", "/mnt/windows/Documents":

 for root, dirs, files in os.walk(base_path):


 docs = {




 "id": re.sub(r'[^a-zA-Z0-9_-', '_', os.path.join(root, f)),




 "name": f,




 "path": os.path.join(root, f),




 "folder": root


 } for f in files]






# Batch upload to Meilisearch


 index.add_documents(docs)

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

การสร้างอินเทอร์เฟซการค้นหาที่ให้ความรู้สึกรวดเร็วจริงๆ

อินเทอร์เฟซที่ทำให้ใช้งานได้

ในทางเทคนิคแล้ว ฉันมีแบ็กเอนด์ที่ใช้งานได้กับ API ที่เปิดเผยโดย Meilisearch แล้ว สิ่งที่ฉันต้องการคืออินเทอร์เฟซสำหรับโต้ตอบกับเครื่องมือค้นหา ซึ่งเป็นสิ่งที่มีน้ำหนักเบา ทันสมัย ​​และใช้งานง่าย

หากคุณคุ้นเคยกับโปรเจ็กต์ก่อนหน้าของฉัน คุณอาจรู้ว่าฉันเป็นแฟนตัวยงของแอปพลิเคชัน React เมื่อใช้ร่วมกับ Vite และ Tailwind ฉันสามารถสร้างอินเทอร์เฟซที่ทันสมัยได้ภายในไม่ถึงหนึ่งชั่วโมง ฉันเลือกกลุ่มเทคโนโลยีเดียวกันสำหรับอินเทอร์เฟซนี้ มันต้องการอินเทอร์เฟซที่ทันสมัยพร้อมแถบค้นหา ไม่มีอะไรมากหรือน้อยไปกว่านั้น

ดังที่ได้กล่าวไว้ก่อนหน้านี้ Meilisearch เปิดเผย API อย่างง่ายบนพอร์ต 7700 ฉันใช้มันเพื่อเชื่อมต่ออินเทอร์เฟซกับเครื่องมือค้นหา กระแสก็เรียบง่าย ฉันป้อนคำค้นหาในแถบค้นหา และแอปก็ส่งคำค้นหาไปที่ Meilisearch API ส่งคืนเส้นทางที่แน่นอนของไฟล์ที่ตรงกัน จากนั้นอินเทอร์เฟซจะแปลงเส้นทางที่เก็บไว้เป็นเส้นทางไฟล์ที่ใช้งานได้บนพีซีของฉัน

สมัครรับจดหมายข่าวเพื่อรับคำแนะนำในการค้นหาไฟล์และเครื่องมือ

รับบทช่วยสอนที่ใช้งานได้จริงและเจาะลึกเครื่องมือในการค้นหาไฟล์ในเครื่องอย่างรวดเร็ว: วิธีการจัดทำดัชนี การกำหนดค่า Meilisearch สคริปต์การจัดทำดัชนี Python และอินเทอร์เฟซ PWA แบบธรรมดา สมัครรับจดหมายข่าวเพื่อสำรวจและทำซ้ำการตั้งค่านี้

รับการอัปเดต

การสมัครแสดงว่าคุณตกลงที่จะรับจดหมายข่าวและอีเมลทางการตลาด และยอมรับข้อกำหนดการใช้งานและนโยบายความเป็นส่วนตัวของเรา คุณสามารถยกเลิกการสมัครได้ตลอดเวลา

เพื่อให้เข้าถึงได้ง่ายขึ้น ฉันจึงใช้ Progressive Web App (PWA) ตอนนี้ให้ประสบการณ์ที่เหมือนกับแอพดั้งเดิมมากขึ้น ตอนนี้ฉันสามารถปักหมุดแอปไว้ที่ทาสก์บาร์ของ Windows ได้แล้ว ทำให้สามารถเข้าถึงได้ในคลิกเดียว เมื่อถึงจุดนั้น มันกลายเป็นเครื่องมือที่ใช้งานได้จริงที่ฉันสามารถใช้ได้ทุกวัน

การค้นหาไฟล์ของฉันเป็นอย่างไรตอนนี้

ขณะนี้การค้นหาเกิดขึ้นในหน่วยมิลลิวินาที

/th/images/custom-file-search-app-result.jpg

เมื่อมองย้อนกลับไปที่ Windows Search เครื่องมือแบบกำหนดเองนี้เป็นการปรับปรุงที่สำคัญ เพียงคลิกเดียวจากทาสก์บาร์ ฉันสามารถเปิดเครื่องมือค้นหาได้ ฉันเริ่มพิมพ์ข้อความค้นหา และเริ่มค้นหาไฟล์ตั้งแต่อักษรตัวแรกเป็นต้นไป ผลลัพธ์จะปรากฏเกือบจะในทันที โดยส่วนใหญ่ภายในเวลาไม่กี่มิลลิวินาที

ผลลัพธ์จะส่งคืนข้อมูลที่เป็นประโยชน์ เช่น ชื่อไฟล์จริง เส้นทางไฟล์ และประเภทของไฟล์ นอกจากนี้ยังมีความสามารถในการเปิดไฟล์ในแอปเฉพาะอีกด้วย รูปภาพจะเปิดใน Windows Photos, PDF ในเบราว์เซอร์ และไฟล์ ZIP ใน File Explorer สิ่งที่เริ่มต้นจากการทดลองเล็กๆ กลายเป็นเครื่องมือที่ฉันพึ่งพาอยู่ทุกวัน

/th/images/python-app-local-llm-feature.jpg

ที่เกี่ยวข้อง

ฉันสร้างแอป Python แบบเต็มโดยใช้เฉพาะ LLM ในเครื่องและ Model Context Protocol (MCP)

สถาปัตยกรรมมีชัยเหนือขนาด ทุกครั้ง.

การค้นหาที่สมเหตุสมผลในที่สุด

ความหงุดหงิดกับ Windows Search ทำให้ฉันสร้างสิ่งทดแทนขึ้นมาเอง ผลลัพธ์มีความน่าเชื่อถือมากกว่าที่ฉันคาดไว้ การทดลองทำความเข้าใจวิธีการทำงานของการจัดทำดัชนีการค้นหาได้เข้ามาแทนที่เครื่องมือค้นหาในตัวอย่างสมบูรณ์ สคริปต์ Python ขนาดเล็ก เสิร์ชเอ็นจิ้นขนาดเล็ก และอินเทอร์เฟซที่เรียบง่าย ล้วนสร้างความแตกต่างให้กับขั้นตอนการทำงานในแต่ละวันของฉัน แทนที่จะค้นหาผ่านโฟลเดอร์ต่างๆ ตอนนี้ฉันสามารถพึ่งพาระบบที่สามารถค้นหาสิ่งที่ฉันกำลังมองหาได้อย่างสม่ำเสมอ

*️⃣ ลิงค์ที่มา:

Local Whisper ถอดเสียงการประชุมที่ใช้เวลานานเป็นชั่วโมงในไม่กี่นาทีโดยไม่ต้องส่งคำไปยังเซิร์ฟเวอร์ใด ๆ ระบบปฏิบัติการได้รับการออกแบบ เครื่องมือค้นหาอาศัยไฟล์การจัดทำดัชนี ทำงานบน Bare-Metal Debian ติดตั้ง Meilisearch , , , , , ข้อกำหนดการใช้งาน , นโยบายความเป็นส่วนตัว ฉันสร้างแอป Python แบบเต็มโดยใช้เฉพาะ LLM ในเครื่องและ Model Context Protocol (MCP)