En iyi Django arama uygulaması nedir? [kapalı]


110

Arama işlevselliğine ihtiyaç duyan bir Django projesi oluşturuyorum ve django.contrib.searchbir arama uygulaması seçmem gerekiyor. Peki en iyisi hangisi? "En iyi" derken ...

  • kurulumu / kurulumu kolay
  • Django veya en azından Python dostu bir API'ye sahiptir
  • oldukça karmaşık aramalar yapabilir

İşte duyduğum bazı uygulamalar, biliyorsanız lütfen başkalarını önerin:

Dizine eklemek istediğim bazı veriler yalnızca site üyeleri içindir ve herkese açık olmamaları gerektiğinden, üçüncü taraf bir arama motoru (Google SiteSearch gibi) kullanmaktan da kaçınmak isterim.



Normalde "en iyi" gibi şeyler oldukça özneldir, ancak kabul edilen yanıtın gösterdiği gibi django gerçekten bir "en iyi" arama uygulamasına sahiptir.

Django'yu tamamen yanlış anlamadıysam, bu hala bir kütüphane talebi ve dolayısıyla konu dışı.
Jeffrey Bosboom

Yanıtlar:


104

Check out Haystack Arama - şu anda destekleyen yeni bir model tabanlı arama soyutlama katmanı Xapian , solr ve whoosh . Görünüşe göre iyi desteklenmiş ve belgelenmiş.


3
Haystack aktif geliştirme aşamasındadır ve yazara her zaman e-posta listesinden ulaşılabilir.
Tom

2
Djangosearch projesinden: "Bu proje artık aktif olarak geliştirilmiyor. Birden fazla arama motoruyla çalışan bir django tam metin arama uygulaması arıyorsanız samanlıklara göz atın. Solr'a özel bir şey arıyorsanız, solangoyu denemek istiyorum. "
Esteban Feldman

Haystack, bir süredir kötü bir şekilde destekleniyor. Bu noktada bundan kaçınmanızı tavsiye ederim. Belki gelecekte düzeltecekler ama şimdi kötü bir yerde.
Aaron Schif

Kabul ediyorum, haystack (2.1) 'in en son sürümü django 1.4'ün python 2.7 sürümüyle hiç çalışmıyor.
Chris Hawkes

19

Justin, önce djangosearch'ü deneyeceğim : Jacob Kaplan-Moss (Django'nun baş geliştiricisi) üzerinde çalışıyor.

Potansiyel tehlikeler:

  • Ana sayfa, API'nin tamamen kararlı olmayabileceği konusunda uyarıyor

Potansiyel faydalar:

  • "Uzun vadeli hedef bunun olması django.contrib.search."

45
Sayfada artık "Bu proje artık aktif olarak geliştirilmiyor. Birden fazla arama motoruyla çalışan bir django tam metin arama uygulaması arıyorsanız Haystack'e bakın."
Tomas Andrle

18

Diğer birçok insan gibi ben de aynı şeyi arıyorum. Umarım django.contrib.search yakında eklenecektir.

Bu arada bulduğum şey bu:

Bana göre çoğu, oldukça karmaşık ve açıkçası, uygulanması biraz ürkütücü görünüyor. Bunlar hakkında ne düşündüğünüzü öğrenmek isterim.


9

Djangosearch için google kod sayfası , artık aktif geliştirme altında olmadığını gösterir ve samanlık veya solango önerir .


2
Solango, artık geliştirme aşamasında olmadığını söylüyor ve Haystack'in kullanılmasını tavsiye ediyor.
Rory

8

Tam metin arama ve toplama için Sphinx'i öneririm ve django-sphinx, prodüksiyon kullanımı için yeterince iyidir. Sphinx'in belgelerimizi indekslemenin ve araştırmanın en az kaynak yoğun ve en hızlı yolu olduğunu ve django-sphinx'in sphinx istemcisinin üstünde güzel bir paketleyici olduğunu gördük.

Örneğin, belirli bir etikete sahip kaç belgenin veya belirli bir yazarın (veya her ikisinin) bir aramayla eşleştiğini görüntülemek istiyorsanız, toplamaya göre grup özellikle güzeldir. Bellek öznitelik güncellemeleri, özellikle silinmiş makaleleri hemen kaldırmak için de kullanışlıdır.


6

Teşekkürler Garth. Djangosearch'ün resmi Django araması olmak istediğini görmüştüm, ancak herhangi bir belge bulamadığım için kullanmakta tereddüt ettim! Neyse ki, daha önce görmediğim bir yıkım içinde bir README var ve bu API'nin çok havalı görünmesini sağlıyor:

# 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

Dahili bir uygulama için zahmetsiz, çok hızlı bir çözüme ihtiyacım vardı .

Bir çırpıda Django'ya arama ekleme makalesini buldum ve bu benim için harika çalıştı!

Tabii ki Haystack gibi gerçek projelerin hızı, ölçeklenebilirliği ve özelliklerinden yoksundur, ancak bunu kurmak daha kolaydır ve gerçekten AND-search anahtar kelimesi dışında bir şeye ihtiyacım yok.



2

Görünüşe göre buradaki herkes django-xappy'yi özlemiş

Django için mevcut tüm arama eklentilerinin hızlı bir şekilde değerlendirilmesinden sonra, bunu en esnek ve kullanımı en kolay olarak buldum. Birkaç yerde sınırlar zor ama yine de Django projelerinde Xapian arama motorunun gücünü kullanmanın en iyi yolu .



1

Dizine eklenecek büyük miktarda veriniz varsa veya yüksek trafik bekliyorsanız, Solr gibi bazı harici arama motorlarını kullanmanızı öneririm . Bu şekilde, hiçbir şey paylaşma yaklaşımını sürdürecek ve site bileşenlerinizi bağımsız olarak ölçekleyebileceksiniz.


1

Sanırım Djapian'a bir haykırmam gerekecek.

Kaya gibi sağlam ... sadece bir kaynak dağıtımını aşağı çekin ve içine bakın. Birinci sınıf kod, çok fazla yorum yok tho ..

Hala genç bir yazılım projesi, ancak bence django topluluğu bunun arkasına ağırlığını atmalı.


0

Teşekkürler Joe,

Tsearch2 ve özel bir postgres adaptörü ile gitmeye karar verdik. Tsearch2'nin çalıştırmak için fazladan bir işleme ihtiyacı yok, bu da sınırlı belleğe sahip bir WebFaction'da olduğumuz için uygun ... Henüz tam olarak bitmedi, ancak iyi bir çözüm gibi görünüyor ...


0

Buldum Djoosh saf piton harici arama motoru kullanır Whoosh benim 'Python' beyinle iyi çalışmak.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.