Ứng dụng tìm kiếm Django tốt nhất là gì? [đóng cửa]


110

Tôi đang xây dựng một dự án Django cần chức năng tìm kiếm và cho đến khi có django.contrib.search, tôi phải chọn một ứng dụng tìm kiếm. Vì vậy, đó là tốt nhất? Ý tôi là "tốt nhất" ...

  • dễ cài đặt / thiết lập
  • có một API thân thiện với Django hoặc ít nhất là Python
  • có thể thực hiện các tìm kiếm phức tạp hợp lý

Dưới đây là một số ứng dụng tôi đã nghe nói đến, vui lòng đề xuất những ứng dụng khác nếu bạn biết về bất kỳ ứng dụng nào:

Tôi cũng muốn tránh sử dụng công cụ tìm kiếm của bên thứ ba (như Google SiteSearch), vì một số dữ liệu tôi muốn lập chỉ mục chỉ dành cho các thành viên của trang web và không được công khai.



Thông thường những thứ như "tốt nhất" khá chủ quan, nhưng django thực sự có một ứng dụng tìm kiếm "tốt nhất" như câu trả lời được chấp nhận cho thấy.

Trừ khi tôi hoàn toàn hiểu sai về django, đây vẫn là một yêu cầu thư viện và do đó lạc đề.
Jeffrey Bosboom

Câu trả lời:


104

Hãy xem Haystack Search - một lớp trừu tượng tìm kiếm dựa trên mô hình mới hiện hỗ trợ Xapian , SolrWhoosh . Có vẻ như nó được hỗ trợ tốt và được ghi lại.


3
Haystack đang được phát triển tích cực và tác giả luôn có sẵn qua danh sách email.
Tom

2
Từ dự án djangosearch: "Dự án này không còn được phát triển tích cực nữa. Nếu bạn đang tìm kiếm một ứng dụng tìm kiếm toàn văn django hoạt động với nhiều công cụ tìm kiếm, hãy xem haystack. Nếu bạn đang tìm kiếm thứ gì đó cụ thể cho Solr, bạn có thể muốn thử solango. "
Esteban Feldman

Haystack đã không được hỗ trợ trong một thời gian khá dài. Tôi khuyên bạn nên tránh nó vào thời điểm này. Có thể họ sẽ sửa nó trong tương lai nhưng hiện tại nó đang ở một vị trí tồi tệ.
Aaron Schif,

Tôi đồng ý, phiên bản mới nhất của haystack (2.1) hoàn toàn không hoạt động với phiên bản python 2.7 của django 1.4.
Chris Hawkes

19

Justin, tôi sẽ thử djangosearch trước: Jacob Kaplan-Moss (nhà phát triển chính của Django) đang làm việc trên đó.

Các mối nguy tiềm ẩn:

  • Trang chủ cảnh báo API có thể không hoàn toàn ổn định

Lợi ích tiềm năng:

  • "Mục tiêu dài hạn là để điều này trở thành django.contrib.search."

45
Trang hiện cho biết "Dự án này không còn được phát triển tích cực nữa. Nếu bạn đang tìm kiếm một ứng dụng tìm kiếm toàn văn django hoạt động với nhiều công cụ tìm kiếm, hãy xem Haystack."
Tomas Andrle

18

Tôi đang tìm kiếm điều tương tự, cũng như rất nhiều người khác. Hãy hy vọng rằng django.contrib.search sẽ sớm được thêm vào.

Trong khi chờ đợi, đây là những gì tôi tìm thấy:

Đối với tôi, hầu hết trông khá phức tạp và thành thật mà nói, hơi khó thực hiện. Tôi muốn biết bạn nghĩ gì về những điều này.


9

Trang mã google cho djangosearch cho biết rằng nó không còn được phát triển tích cực và đề xuất haystack hoặc solango .


2
Solango cho biết nó không còn được phát triển và khuyến nghị sử dụng Haystack.
Rory

8

Tôi muốn giới thiệu Sphinx để tìm kiếm và tổng hợp toàn văn, và django-sphinx đủ tốt để sử dụng trong sản xuất. Chúng tôi nhận thấy rằng Sphinx là cách ít tốn tài nguyên nhất và nhanh nhất để lập chỉ mục và tìm kiếm tài liệu của chúng tôi và django-sphinx là một trình bao bọc tốt trên ứng dụng nhân sư.

Nhóm theo tập hợp đặc biệt tuyệt vời, nếu chẳng hạn bạn muốn hiển thị bao nhiêu tài liệu với một thẻ nhất định hoặc của một tác giả nhất định (hoặc cả hai) phù hợp với tìm kiếm. Trong cập nhật thuộc tính bộ nhớ cũng rất tiện lợi, đặc biệt là để xóa các bài báo đã xóa ngay lập tức.


6

Cảm ơn Garth. Tôi đã thấy rằng djangosearch muốn trở thành tìm kiếm Django chính thức, nhưng tôi đã do dự khi sử dụng nó vì tôi không thể tìm thấy bất kỳ tài liệu nào! May mắn thay, có một README trong lật đổ mà tôi chưa từng thấy trước đây và nó làm cho API trông rất tuyệt:

# 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

Tôi chỉ cần một giải pháp rất nhanh chóng mà không gây phiền phức cho một ứng dụng nội bộ.

Tôi đã tìm thấy bài viết Thêm tìm kiếm vào Django trong tích tắc và điều đó rất hiệu quả đối với tôi!

Rõ ràng là nó thiếu tốc độ, khả năng mở rộng và các tính năng của các dự án thực như Haystack, nhưng cái này dễ thiết lập hơn và tôi không thực sự cần bất cứ thứ gì khác ngoài từ khóa AND-search.



2

Có vẻ như mọi người ở đây đều bỏ lỡ django-xappy

Sau khi đánh giá nhanh tất cả các tiện ích bổ sung tìm kiếm hiện có cho Django, tôi thấy tiện ích này linh hoạt nhất và dễ sử dụng nhất. Nó còn thô ở một vài chỗ, nhưng đó vẫn là cách tốt nhất để sử dụng sức mạnh của công cụ tìm kiếm Xapian bên trong các dự án Django.


2

Bạn có thể muốn xem tìm kiếm Django Solr (hay còn gọi là "Solango") đi kèm với một số tài liệu hay để giúp bạn bắt đầu ...


1

Nếu bạn có lượng lớn dữ liệu cần được lập chỉ mục hoặc bạn mong đợi lưu lượng truy cập cao, tôi khuyên bạn nên sử dụng một số công cụ tìm kiếm bên ngoài, như Solr . Bằng cách này, bạn sẽ duy trì cách tiếp cận không chia sẻ và có thể mở rộng quy mô các thành phần trang web của mình một cách độc lập.


1

Tôi nghĩ tôi sẽ phải hét lên với Djapian.

Nó rất chắc chắn ... chỉ cần kéo một phân phối nguồn xuống và nhìn vào bên trong. Mã đỉnh cao, không có nhiều ý kiến ​​tho ..

Nó vẫn còn là một dự án phần mềm non trẻ, nhưng tôi nghĩ cộng đồng django nên bỏ nó đi sau dự án này.


0

Cảm ơn Joe,

Chúng tôi quyết định sử dụng Tsearch2 và một bộ chuyển đổi postgres tùy chỉnh. Tsearch2 không cần thêm tiến trình để chạy, điều này rất tiện lợi vì chúng tôi đang sử dụng dịch vụ lưu trữ WebFaction với bộ nhớ hạn chế ... Nó vẫn chưa hoàn thành hoàn toàn, nhưng có vẻ là một giải pháp tốt ...


0

Tôi thấy Djoosh dựa trên công cụ tìm kiếm bên ngoài thuần python Whoosh để hoạt động tốt với bộ não 'Python' của tôi.


0

Nếu bạn sẵn sàng sử dụng công cụ tìm kiếm của bên thứ 3, tôi có thể giới thiệu Yahoo BOSSdjango-bosssearch .

Yahoo BOSS là một dịch vụ trả phí, nhưng nó giúp bạn thiết lập và duy trì phần mềm tìm kiếm khác trên máy chủ của mình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.