[Django] Content Related content?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
setech
User
Beiträge: 11
Registriert: Sonntag 23. August 2009, 23:20

Nabend,

ich habe gerade nicht so wirklich eine idee wie ich folgendes Realisieren könnte:

Sagen wir mal ich habe eine News zu Python 3 geschrieben, nun sollen unter dem punkt "Related News" o.ä. News angezeigt werden die auch mit dem Thema zu tun haben


Problem 2:
Wie kann ich es möglichst performant gestalten das ich folgendes bewerkstelligen kann:
In der News Python3 steht natürlich auch Text, dieser text soll überprüft werden und wenn bestimmte keywords (die ich vorher in einer art Lexikon gespeichert habe) dort als Link zum jeweiligen Lexikon eintrag erscheinen

-> mir würde da jetzt eigentlich nur einfallen das ich vorher wort für wort überprüfe ob es das im Lexikon gibt, aber ich würde mal sagen das es nicht gerade die server schonenste variante ist, gibts da was besseres? :)
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Das hat a) weder mit Django im generellen, noch b) Webprogrammierung im allgemeinen zu tun.

Um zurück zum Thema kommen: sowas ist nicht wirklich einfach oder trivial, ich würde eine library wie xapian, sphinx, lucene verwenden; diese bieten alle ein „more like this“ Feature so weit ihc mich erinnern kann.

Wenn du aber schon Django verwendest kannst du http://haystacksearch.org verwenden. Lucene und Solr, sowie das Xapian Backend haben dort ne „more like this“ funktion ;)
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Wenn man's nicht einer (externen) Suchmaschine überlassen will, sondern Verweise auf verwandte Artikel redaktionell pflegen will, lautet die Antwort IMHO ManyToManyField.

Code: Alles auswählen

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    related_articles = models.ManyToManyField("self")
Für Verweise auf ein Lexikon würde ich vor dem Speichern den Text Wort für Wort durchsuchen und für passende Wörter sofort Hyperlinks setzen. Entweder als <a href>, wenn du direkt HTML speicherst, oder aber in der passenden Syntax für Markdown oder verwandte Formate. Wenn es zu aufwendig scheint, diese Hyperlinks vor der Anzeige zum Bearbeiten wieder zu entfernen, würde ich den Text wahrscheinlich 2x speichern. Gerade wenn man Markdown o.ä. verwendet, kann es sinnvoll sein, den Text einmal vor dem Speichern in HTML zu verwandeln und nicht erst jedes Mal beim Anzeigen.

Stefan
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Vllt. willst du auch Tags/Keywords für deine Artikel setzen, dann gestaltet sich die Suche nach verwandten Themen wesentlich einfacher, da du einfach nach gleichen Tags oder Keywords durchsuchen kannst.
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

An tags hatte ich auch schon gedacht, aber Tags sind imo zu generell (eg Allgemein und Sonstiges…)
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Naja, "Allgemein" und "Sonstiges" wären dann wohl eher Kategorien in meinen Augen. Tags sind für mich spezifischere Schlagwörter.
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

setech, alle verfügbaren Metainformationen zu einem Post analysieren und gewichten und somit die Relation zu anderen Posts herstellen. Ich würde zB Tags höher gewichten als häufig vorkommende Wörter in Text und Überschrift und so weiter.

Gruß
Antworten