Selbst gehostete Nicht-Java-Suchmaschine für meine statischen Websites

Ich möchte eine Suchmaschine selbst hosten, die meine statische(n) Website(s) indiziert.

Ich möchte für diese Websites kein CMS (in dem normalerweise eine Suchmaschine integriert ist) verwenden und ich möchte meine Besucher nicht auf einen Suchmaschinendienst eines Drittanbieters verweisen.

Es muss keine benutzerfreundliche Suchmaschine sein (wie Google, Bing usw.), es ist hauptsächlich für Power-User gedacht, daher kann eine komplexe Suchsyntax erforderlich sein.

Anforderungen

Formalitäten:

  • Die Suchmaschine muss FLOSS sein.

  • Es muss auf einem GNU/Linux-Server laufen.

  • Es darf kein Java verwenden (ich weiß, dass es mehrere gute Suchmaschinenprojekte in Java gibt, aber leider unterstützt mein Host es nicht).

Backend:

  • Die Suchmaschine muss (X)HTML5 indizieren. Unterstützung für andere Formate ist nicht erforderlich.

  • Ich möchte nicht, dass der Crawler meine Seiten selbst findet. Stattdessen möchte ich eine Liste von URLs bereitstellen, die gecrawlt werden sollen (die idealerweise eines der Formate von sitemaps.org unterstützen ).

  • Ich möchte keine Metadaten zu den Dokumenten an anderer Stelle als in den Dokumenten selbst hinzufügen.

Frontend:

  • Die Suchmaschine darf kein JavaScript erfordern (außer für optionale Funktionen).
  • Es darf keine Cookies setzen (es sei denn, der Benutzer übermittelt ausdrücklich ein Einstellungsformular oder ähnliches).

Meine Wunschliste

  • Indizierung: Neben dem Volltext sollten möglichst viele Signale (z. B. in Form von Name-Value-Paaren) wie Meta-Tags, RDFa/JSON-LD, semantische Elemente etc. indexiert werden.

  • SERP: Ich möchte definieren können, wie die Ergebnisse in Abhängigkeit von den indizierten Daten aussehen sollen. Ähnlich wie Rich Snippets von Google . Zum Beispiel: Zeigen Sie ein Bild, eine Liste, eine kurze Tabelle usw.

  • Rangordnung: Ich möchte den Rangordnungsalgorithmus optimieren können, zB jedem Feld eine bestimmte Punktzahl/Priorität zuweisen.

  • Suchoperatoren: Es sollte zumindest die booleschen AND// und Klammern (zB ) unterstützen. Je mehr Operatoren, desto besser (Phrasen-/Bereichs-/Nähesuche; feldbasierte Suche; Sonderzeichen, Groß-/Kleinschreibung usw.).ORNOT(laptop OR notebook) (review OR reviews) -netbook

Kein Java? Kein JavaScript? Wie wird es laufen? Übersehe ich etwas? Tut mir leid, wenn das unhöflich klingt, so ist es nicht gemeint. Ich bin wahrscheinlich nur dumm, wie üblich :-) Ich nehme an, Sie haben SourceForge usw. überprüft ... Ps es soll in einem Browser laufen, nicht wahr?
@Mawg: Backend: Anstelle von Java kann es jede andere Programmiersprache verwenden, die allgemein auf Webservern verfügbar ist, zB PHP, Python, Ruby oder Perl. --- Frontend: Es sollte kein JavaScript erforderlich sein – es ist nur ein einfaches HTML-Formular für das Suchfeld und eine einfache HTML-Liste für die Ergebnisse. --- Und ja, es soll im Browser verwendet werden -- ich werde es in meine Website integrieren.

Antworten (2)

Was ist mit dem guten alten ht:dig ?

Die letzte Version stammt aus dem Jahr 2004, daher bin ich mir nicht sicher, wie sie die von HTML5 eingeführten neuen Elemente indiziert.

Auch die Unterstützung von Nicht-HTML-Textformaten (PDF, DOCX...) ist suboptimal, aber das stand nicht auf Ihrer Anforderungsliste.

Ich empfehle auch Sphinx - siehe sphinxsearch.com

Sphinx ist ein Open-Source-Volltextsuchserver, der von Grund auf mit Blick auf Leistung, Relevanz (auch bekannt als Suchqualität) und einfache Integration entwickelt wurde. Es ist in C++ geschrieben und funktioniert unter Linux (RedHat, Ubuntu usw.), Windows, MacOS, Solaris, FreeBSD und einigen anderen Systemen.

Mit Sphinx können Sie entweder Daten, die in einer SQL-Datenbank, NoSQL-Speicher oder nur Dateien gespeichert sind, schnell und einfach stapelweise indizieren und durchsuchen – oder Daten im laufenden Betrieb indizieren und durchsuchen, wobei Sie mit Sphinx so ziemlich wie mit einem Datenbankserver arbeiten.

Ich habe nur gute Erfahrungen damit unter Linux und Windows gemacht.