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?
[Django] Content Related content?
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
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
Wenn man's nicht einer (externen) Suchmaschine überlassen will, sondern Verweise auf verwandte Artikel redaktionell pflegen will, lautet die Antwort IMHO ManyToManyField.
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
Code: Alles auswählen
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
related_articles = models.ManyToManyField("self")
Stefan
-
- 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ß
Gruß