Vorschlag für einen besseren ft:pedia Volltextindex

Feedback, Anregungen, Kritik, Themenwünsche zur ft:pedia
Feedback, Proposals, Reviews, Themewishes according ft:pedia

Moderator: ft:pedia-Herausgeber

Antworten
tintenfisch
Beiträge: 472
Registriert: 03 Jan 2018, 22:04

Vorschlag für einen besseren ft:pedia Volltextindex

Beitrag von tintenfisch » 13 Feb 2023, 22:27

Hallo zusammen,

ich weiß nicht, ob das Thema hier oder bei "Rund um die Community" besser aufgehoben ist, ggf. bitte verschieben.

Die Suche unter <https://www.ftcommunity.de/search/ftpedia-search/> ist m.E. im Funktionsumfang etwas limitiert. Konkret:

* keine speziellen Suchen (Autorenname, Titel) möglich
* es wird ein Teil des Textes und die ft:pedia Ausgabe gelistet, hilfreiche Informationen wie bspw. der Titel fehlen
* Verlinkung erfolgt immer auf die komplette ft:pedia-Ausgabe, nicht auf den Artikel der gefunden wurde

Ich habe nun eine Alternative erstellt, die auf Xapian basiert. Das Erstellen des Index ist auf meinem Rechner eine Sache von ein paar Sek. und die Ergebnisse lassen sich m.E. besser auswerten / darstellen:

* es wird zu jedem Dokument ein JSON-Dokument in der Datenbank abgelegt, u.a. mit Titel, Autor(en), Erscheinungsjahr, …
* es können Suchen durchgeführt werden, die nur den Autor enthalten, bspw: author:falk
* es können Suchen durchgeführt werden, die die Rubrik des Artikels spezifizieren, bspw. author:till AND category:modell
* es wird ein Datensatz zur URL angelegt, der die genaue Seite des Artikels angibt, somit können die Artikel direkt angeklickt und aufgerufen werden.

Der komplette Code für die Datenbank (Erstellen des Index und Suche) ist unter <https://github.com/heuer/ftpediasuche/b ... ulltext.py> zu finden, m.E. recht kurz und überschaubar. Es wird eine DB mit einer Größe von ca. 20 MB erzeugt, darum liegt die DB auch nicht im Repository, sondern müßte selber erstellt werden.

Das dazugehörige Repository <https://github.com/heuer/ftpediasuche> hat noch ein paar zusätzliche Infos, so dass, bei Interesse, der Code auch in ftc-Webseite übernommen werden kann. Der komplette Code steht unter einer Public Domain ähnlichen Lizenz, so dass es auch keine Lizenzprobleme geben sollte.

Ein paar Bilder des Web-UI Prototyps im Anhang, wobei ich den gar nicht so wichtig finde und er kein Designvorschlag ist, aber die Funktionalität ggf. besser als Worte beschreibt. ;)

Neben den genannten Kritikpunkten finde ich es etwas unglücklich, dass die Anfragen bei der derzeitigen Suche per POST und nicht via GET gestellt werden, aber das hat nur bedingt mit dem Funktionsumfang zu tun, auch wenn Anfragen via GET den Vorteil hätten, dass man Links über Suchanfragen austauschen kann.

Verlinkung der PDFs mit Seitenangabe
verlinkung.png
verlinkung.png (158.75 KiB) 3391 mal betrachtet

Suche nach Autoren (falk und riedel)
autoren.png
autoren.png (148.07 KiB) 3391 mal betrachtet
Suche im Titel
titel.png
titel.png (157.29 KiB) 3391 mal betrachtet
Freitextsuche
freitext.png
freitext.png (160.73 KiB) 3391 mal betrachtet
star-wars.png
star-wars.png (188.79 KiB) 3391 mal betrachtet

Viele Grüße
Lars

Benutzeravatar
steffalk
ft:pedia-Herausgeber
Beiträge: 1792
Registriert: 01 Nov 2010, 16:41
Wohnort: Karlsruhe
Kontaktdaten:

Re: Vorschlag für einen besseren ft:pedia Volltextindex

Beitrag von steffalk » 14 Feb 2023, 12:58

Tach auch!

Wow, hier wird ja ganze Arbeit geleistet - ich bin begeistert! Ich kann das zwar nicht auf der Website einbauen - das müsste jemand mit Ahnung machen - aber wenn Du oder sonst jemand etwas braucht, kann ich gerne JSONs oder was auch immer aus der Datenbank erzeugen, so wie jetzt die CSVs auch erzeugt werden.

Spitzenklasse, Dein Engagement! Danke dafür!

Gruß,
Stefan

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: Vorschlag für einen besseren ft:pedia Volltextindex

Beitrag von richard.kunze » 14 Feb 2023, 21:19

Hallo Lars,

zunächst mal möchte ich mich Stefan anschließen - tolle Initiative, und gute Ideen!

Wenn ich den verlinkten Code richtig verstehe, dann baust du den Index für die Suche aus zwei Quellen zusammen:
  1. Der CSV-Übersicht über alle ft:pedia-Artikel (da kommen Autor, Titel und Seitenzahlen her)
  2. Dem (aus den PDFs extrahierten?) Volltext für die einzelnen Artikel
Der eigentliche Trick dabei ist, für jeden Artikel nur den jeweils zugehörigen Volltext zu indizieren...

Wenn du nichts dagegen hast, würde ich das auf der Website gerne auch so machen. Allerdings auf einer etwas anderen technischen Basis, weil wir für die Suche auf der Website (sowohl für die ft:pedia als auch für den Rest der Website) Apache Solr verwenden - und wenn ich deine Lösung 1:1 übernehmen würde, hätte ich dann zwei verschiedene Suchsysteme (oder müsste die Website-Suche auch von Solr auf Xapian umstellen). Aber eigentlich sollte das mit Solr genauso gut gehen...
* keine speziellen Suchen (Autorenname, Titel) möglich
Jein. Für die Website haben wir uns bewusst dagegen entschieden, die Feldangaben eingebbar zu machen. Stattdessen suchen wir immer in allen indizierten Feldern. Könnten wir ändern, aber das macht die Syntax für die Suche komplizierter...

Für die ft:pedia indizieren wir aktuell nur den "rohen" Volltext und haben gar keine Metadaten (weil die aus dem PDF selbst nur sehr schwer zu extrahieren sind - und auf die Idee, dafür die Übersichts-CSV zu nehmen sind wir nicht gekommen). Das würde ich aber generell auch gerne mit der Website-Suche konsistent halten, d.h. entweder beide Suchen mit expliziter Feldangabe, oder keine.

Viele Grüße,

Richard

tintenfisch
Beiträge: 472
Registriert: 03 Jan 2018, 22:04

Re: Vorschlag für einen besseren ft:pedia Volltextindex

Beitrag von tintenfisch » 14 Feb 2023, 21:45

Hallo Richard,

genau, die Metadaten (Titel, Seiten, Autoren, ft:pedia-Ausgabe, Jahrgang, …) kommen aus Stefans CSV-Datei und jeder Artikel ist ein Dokument im Index, die Metadaten werden zusammen mit dem Dokument im Index abgelegt (in meinem Falle als JSON). Die PDFs wandle ich zuvor artikelweise via pdftotext (wieder mit den Metadaten aus der CSV-Datei, um die zu extrahierenden Seiten zu bestimmen) in Textdateien um. Die Texte werden dann zum Füttern des Index verwendet.

Freut mich, dass die Idee aufgegriffen wird! :)

Viele Grüße
Lars

Benutzeravatar
EstherM
Beiträge: 1466
Registriert: 11 Dez 2011, 21:24

Re: Vorschlag für einen besseren ft:pedia Volltextindex

Beitrag von EstherM » 17 Feb 2023, 08:25

Hallo zusammen, lieber Lars,

Wie schon geschrieben, müsste die Einbindung dieser interessanten Funktion jemand machen, der Ahnung hat (und Zeit und Lust), unter Berücksichtigung der Administrationssicht, dass zwei verschiedene Suchmaschinen auf dem Server besser vermieden werden.

Ich hätte aber noch eine Anmerkung zu der genannten nicht-funktionalen Anforderung GET-Request: Wenn ich mich nicht irre, nutzt unsere Suche auf unserer Webseite (sowohl die ft:pedia-Suche als auch die zwei Jahre alte Suche in Seitentexten) einen GET-Request. Dass dies keine Auswirkungen auf die Adresse (wie man sie z.B. in der Adresszeile des Browsers sieht) hat, liegt daran, dass die Anfragen und die Darstellung der Ergebnisse im Browser komplett von JavaScript innerhalb einer Seite abgearbeitet werden.

Gruß
Esther

Antworten