Was bisher geschah:Suchmaschinen-Lösung für Django, die tatsächlich funktioniert?
Beschlossen mit Xapian als Suche Backend zu gehen, weil es alle Suchmaschinen-Funktionen hat, denn ich war auf der Suche, weiß über Unicode ergeben, hat nur wenige Abhängigkeiten und erfordert keine aufgeblähten Installation app-Server auf Spitze davon.
Versuchte Django und Haystack (plus Xapian-Heuhaufen, der Backend-Klebecode, um Haystack an Xapian zu binden), weil es auf einigen Blogs als "Arbeiten" beworben wurde. Funktioniert nicht. Weder Django-Heuhaufen noch das Xapian-Heuhaufen-Projekt bieten eine Versionskombination, die tatsächlich zusammenarbeitet. MASTER aus beiden Projekten ergibt einen Fehler von Xapian, also ist es überhaupt nicht stabil. Haystack 1.0.1 und xapian-hoystack 1.0.x/1.1.0 sind nicht API-kompatibel. In einer minimal funktionierenden Installation von Haystack 1.0.1 und xapian-haystack MASTER führt jede komplexe Abfrage zu Null-Ergebnissen aufgrund von Fehlern im Django-Heuhaufen oder im Xapian-Heuhaufen (ich habe das zweimal verifiziert), vielleicht weil die Unit-Tests teste wirklich sehr einfache Fälle und überhaupt keine Randfälle.
Versuchte Djapian. Der Quellcode ist mit Rechtschreibfehlern gespickt (wohlgemerkt, in Variablennamen, nicht in Kommentaren), die Dokumentation ist auch mit Zweideutigkeiten und veralteten Informationen gespickt, die niemals zu einer funktionierenden Installation führen werden. Es überrascht nicht, dass Nutzer selten nach Funktionen fragen, sondern wie sie überhaupt funktionieren.
Als nächstes auf der Platte: Exploring Solr (Installation einer Java-Umgebung plus Tomcat gibt mir Kopfschmerzen, ist die Maschine RAM-und CPU-eingeschränkt) oder Lucene (etwas weniger Kopfschmerzen, aber immer noch).
Bevor ich fortfahre, mehr Zeit mit einer Lösung zu verbringen, die vielleicht wie angekündigt funktioniert, würde ich gerne wissen: Hat jemand jemals eine echte Suchlösung in Django gefunden? Es ist mein ernst. Ich finde es sehr frustrierend zu lesen, dass "große Probleme meist gelöst sind", und dann merke ich, dass du nie eine funktionierende Installation aus dem Quellcode bekommen wirst, weil alle Blogger, die sich mit diesen "meist gelösten Problemen" beschäftigen, nie über die Grundinstallation hinaus gegangen sind Kopieren der offiziellen Tutorials.
sind also hier die Anforderungen:
- muss 10-100 Bedingungen in einer Abfrage
- muss suchen können handhaben + (Begriff muss vorhanden sein) und - (Begriff darf nicht vorhanden sein) , UND/ODER
- muss mit beliebiger Gruppierung umgehen (dh Klammern um UND/ODER)
- muss Django-ORM-Filterung vor oder nach der Volltextsuche zulassen (dh Vor-/Nachbearbeitung der Ergebnisse mit dem vollständigen Satz von Filter, die Django kennt)
- Alternativ muss es eine Einrichtung sein, bulk-fetch das Ergebnis gesetzt und wandeln es in ein QuerySet
- sollte leicht an der Maschine, also vorzugsweise nicht humongous JVM und Java-basierte app-Serverinstallation
Gibt es da draußen etwas, das das tut? Ich bin nicht an anekdotischen Beweisen oder Verweisen auf einige Blogposts interessiert, die behaupten, dass es funktionieren sollte. Ich würde gerne von jemandem hören, der tatsächlich ein voll funktionsfähiges Setup hat, das in der realen Welt unter realen Bedingungen mit echten Abfragen arbeitet.
EDIT:
mich wieder Lassen Sie wiederholen, dass ich nicht so viel Interesse an anekdotische Hinweise darauf, dass jemand, irgendwo eine etwas läuft Installation hat mit nicht spezifizierten Eigenschaften arbeiten. Ich war schon dort, habe alle Blogposts, Mailinglisten gelesen und mich mit den Autoren in Verbindung gesetzt, aber wenn es um die tatsächliche Umsetzung von realen Szenarien ging, funktionierte nichts wie angekündigt.
Auch, und ein Benutzer unten brachte diesen Punkt auch, in Anbetracht der TCO eines Projekts, ich bin definitiv nicht interessiert zu hören, dass jemand, irgendwo in der Lage war, es abziehen, wenn ein Verkäufer in einer unbekannten Nummer Fallschirm von Spezialisten, um die gesamte Installation mit spezifischem Domänenwissen zu versehen, das nirgends dokumentiert ist.
Wenn Sie also behaupten, dass Sie eine funktionierende Installation haben, die die Mindestanforderungen für eine vollständige Suche erfüllt (siehe Anforderungen oben), stellen Sie bitte Folgendes bereit, damit wir alle von einer Suchlösung für Django profitieren können tatsächlich löst das Problem:
- genaue Linux-Distribution, Release-Version,
- genaue Release-Version von Haystack (oder gleichwertig) und Release-Version der Suche Backend,
- genaue Release-Version der Suchmaschine
- öffentlich (!) Verfügbare Dokumentation, um alle Komponenten genau so einzurichten, wie Ihre Installation eingerichtet wurde, so dass die oben genannten Mindestanforderungen erfüllt werden.
Danke.
Ich fürchte, dass Sie dort einen sehr gültigen Punkt haben. Ich habe versucht, entweder Djapian oder Heuhaufen + Xapian-Heuhaufen auf eine Website, die eine funktionierende Suchfunktionalität mit LIKE in MySQL implementiert hat, zu stecken, und bis jetzt sieht es so aus, als wäre es ein Albtraum, ein reproduzierbares, funktionierendes Setup vorzubereiten. Ich habe Djapian bereits abgeladen und bin mit Heuhaufen gegangen, aber obwohl es sehr schnell ist, habe ich schon ein paar Bugs gefunden (oder Dokumentationsengpässe, ich bin mir noch nicht sicher). –