แอพค้นหา Django ที่ดีที่สุดคืออะไร? [ปิด]


110

ฉันกำลังสร้างโครงการ Django ที่ต้องการฟังก์ชันการค้นหาและจนกว่าจะมีdjango.contrib.searchฉันต้องเลือกแอปค้นหา แล้วแบบไหนดีที่สุด? โดย "ดีที่สุด" ฉันหมายถึง ...

  • ติดตั้ง / ตั้งค่าได้ง่าย
  • มี Django- หรืออย่างน้อย Python-friendly API
  • สามารถทำการค้นหาที่ซับซ้อนพอสมควร

นี่คือแอพบางตัวที่ฉันเคยได้ยินโปรดแนะนำคนอื่น ๆ หากคุณรู้จัก:

ฉันต้องการหลีกเลี่ยงการใช้เครื่องมือค้นหาของบุคคลที่สาม (เช่น Google SiteSearch) เนื่องจากข้อมูลบางส่วนที่ฉันต้องการจัดทำดัชนีมีไว้สำหรับสมาชิกไซต์เท่านั้นและไม่ควรเปิดเผยต่อสาธารณะ



โดยปกติสิ่งต่างๆเช่น "ดีที่สุด" นั้นค่อนข้างเป็นเรื่องส่วนตัว แต่ django มีแอปค้นหาที่ "ดีที่สุด" หนึ่งแอปตามที่คำตอบที่ยอมรับแสดง

เว้นแต่ฉันจะเข้าใจผิดโดยสิ้นเชิง django นี่ยังคงเป็นคำขอของห้องสมุดและไม่อยู่ในหัวข้อ
Jeffrey Bosboom

คำตอบ:


104

ตรวจสอบกองหญ้าค้นหา - ชั้นนามธรรมการค้นหาตามรูปแบบใหม่ซึ่งขณะนี้สนับสนุนXapian , Solrและหวือ ดูเหมือนว่าได้รับการสนับสนุนและจัดทำเป็นเอกสารเป็นอย่างดี


3
Haystack อยู่ระหว่างการพัฒนาและผู้เขียนสามารถดูรายชื่ออีเมลได้ตลอดเวลา
ทอม

2
จากโครงการ djangosearch: "โครงการนี้ไม่ได้อยู่ระหว่างการพัฒนาอีกต่อไปหากคุณกำลังมองหาแอปพลิเคชันค้นหาข้อความแบบเต็ม django ที่ทำงานร่วมกับเครื่องมือค้นหาหลายรายการโปรดดูกองหญ้าหากคุณกำลังมองหาสิ่งที่เฉพาะเจาะจงสำหรับ Solr คุณอาจ อยากลองเล่นโซลันโก "
Esteban Feldman

กองหญ้าได้รับการสนับสนุนไม่ดีในบางครั้ง ฉันขอแนะนำให้คุณหลีกเลี่ยงในจุดนี้ บางทีพวกเขาอาจจะแก้ไขได้ในอนาคต แต่ตอนนี้มันแย่แล้ว
Aaron Schif

ฉันยอมรับ haystack เวอร์ชันล่าสุด (2.1) ใช้งานไม่ได้เลยกับ django 1.4 เวอร์ชัน python 2.7 ของฉัน
Chris Hawkes

19

จัสตินฉันจะลองdjangosearchก่อน: Jacob Kaplan-Moss (ผู้พัฒนาหลักของ Django) กำลังดำเนินการอยู่

อันตรายที่อาจเกิดขึ้น:

  • หน้าแรกเตือนว่า API อาจไม่เสถียรทั้งหมด

ประโยชน์ที่เป็นไปได้:

  • “ เป้าหมายระยะยาวคือเพื่อให้สิ่งนี้กลายเป็นdjango.contrib.search

45
ตอนนี้หน้าระบุว่า "โครงการนี้ไม่อยู่ระหว่างการพัฒนาอีกต่อไปหากคุณกำลังมองหาแอปพลิเคชันการค้นหาข้อความแบบเต็ม django ที่ทำงานร่วมกับเครื่องมือค้นหาหลายรายการโปรดดู Haystack"
Tomas Andrle

18

ฉันกำลังค้นหาสิ่งเดียวกันเช่นเดียวกับคนอื่น ๆ อีกมากมาย หวังว่าจะเพิ่มdjango.contrib.searchเร็ว ๆ นี้

ในระหว่างนี้นี่คือสิ่งที่ฉันพบ:

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


9

หน้ารหัส google เพื่อdjangosearchแสดงให้เห็นว่ามันไม่ได้อยู่ภายใต้การพัฒนางานและแสดงให้เห็นกองหญ้าหรือsolango


2
Solango กล่าวว่าไม่อยู่ระหว่างการพัฒนาอีกต่อไปและแนะนำให้ใช้ Haystack
รอรี

8

ฉันขอแนะนำ Sphinx สำหรับการค้นหาและการรวมข้อความแบบเต็มและ django-sphinx ดีพอสำหรับการใช้งานจริง เราพบว่า Sphinx เป็นวิธีที่ใช้ทรัพยากรน้อยที่สุดและเร็วที่สุดในการจัดทำดัชนีและค้นหาเอกสารของเราและ django-sphinx เป็นเครื่องห่อหุ้มที่ดีสำหรับไคลเอนต์สฟิงซ์

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


6

ขอบคุณ Garth ฉันเคยเห็นว่า djangosearch ต้องการที่จะเป็นการค้นหา Django อย่างเป็นทางการ แต่ฉันลังเลที่จะใช้เพราะไม่พบเอกสารใด ๆ ! โชคดีที่มีREADME ในการโค่นล้มที่ฉันไม่เคยเห็นมาก่อนและทำให้ API ดูดีมาก:

# set up the model
class Event(models.Model):
    title = models.CharField(max_length=255)
    date = models.DateField()
    is_outdoors = models.BooleanField()

    index = djangosearch.ModelIndex(text=['title'], 
                                    additional=['date', 'is_outdoors'])

# run a search
results = Event.index.search("django conference")

6

ฉันแค่ต้องการวิธีแก้ปัญหาที่รวดเร็วมากซึ่งไม่ยุ่งยากสำหรับแอปภายใน

ฉันพบบทความการเพิ่มการค้นหาใน Django ในพริบตาและนั่นก็ใช้ได้ผลดีสำหรับฉัน!

เห็นได้ชัดว่ามันขาดความเร็วความสามารถในการปรับขนาดและคุณสมบัติของโครงการจริงเช่น Haystack แต่อันนี้ติดตั้งง่ายกว่าและฉันไม่ต้องการอย่างอื่นนอกจากคีย์เวิร์ด AND-search


3

คุณอาจต้องการพิจารณาให้ Yahoo ทำงานหนักทั้งหมดด้วย Build your own Search Service (BOSS) นี่คือบล็อกโพสต์ที่ยอดเยี่ยมที่จะแนะนำคุณตลอดกระบวนการ: http://www.peterkrantz.com/2008/yahoo-search-in-django/


ฉันมีแพ็คเกจ Django ที่ทำให้ง่ายยิ่งขึ้น: bitbucket.org/jaap3/django-bosssearch
jaap3

2

ดูเหมือนทุกคนที่นี่พลาดdjango-xappy

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


2

คุณอาจต้องการดูการค้นหาDjango Solr (หรือที่เรียกว่า "Solango") ซึ่งมาพร้อมกับเอกสารที่ดีในการเริ่มต้น ...


1

หากคุณมีข้อมูลจำนวนมากจะจัดทำดัชนีหรือที่คุณคาดหวังการจราจรสูงผมขอแนะนำให้ใช้เครื่องมือค้นหาบางภายนอกเช่นSolr ด้วยวิธีนี้คุณจะไม่ใช้วิธีการที่ไม่ใช้ร่วมกันและสามารถปรับขนาดส่วนประกอบไซต์ของคุณได้อย่างอิสระ


1

ฉันคิดว่าฉันจะต้องตะโกนออกไปถึง Djapian

มันเป็นหินแข็ง ... เพียงแค่ดึงการกระจายแหล่งที่มาและมองเข้าไปข้างใน โค้ดสุดยอดคอมเม้นท์ไม่เยอะ ..

มันยังคงเป็นโครงการซอฟต์แวร์ที่อายุน้อย แต่ฉันคิดว่าชุมชน django ควรให้ความสำคัญกับเรื่องนี้


0

ขอบคุณโจ

เราตัดสินใจใช้ Tsearch2 และอะแดปเตอร์ postgres แบบกำหนดเอง Tsearch2 ไม่จำเป็นต้องมีกระบวนการเพิ่มเติมในการรันซึ่งสะดวกเนื่องจากเราอยู่บน WebFaction โฮสติ้งที่มีหน่วยความจำ จำกัด ... ยังไม่เสร็จสมบูรณ์ แต่ดูเหมือนจะเป็นทางออกที่ดี ...


0

ฉันพบDjooshซึ่งอาศัยเครื่องมือค้นหาภายนอกของ pure-python Whooshเพื่อให้ทำงานได้ดีกับสมอง 'Python' ของฉัน


0

หากคุณมีความยินดีที่จะใช้เป็นเครื่องมือค้นหาบุคคลที่ 3 ผมสามารถแนะนำYahoo BOSSและDjango-bosssearch

Yahoo BOSS เป็นบริการแบบชำระเงิน แต่ช่วยให้คุณประหยัดการตั้งค่าและบำรุงรักษาซอฟต์แวร์ค้นหาอื่น ๆ บนเซิร์ฟเวอร์ของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.