我正在建立一個基於線程的特定主題的社交互動網站,想想Gmail,只有公共。在詞彙表中還會有一些靜態信息,以及博客,how-tos,知識庫等。它是django + postgres。Django模型架構在PostgreSQL中進行全文搜索
無論模型的類型如何,最重要的要求之一就是對所有信息進行全文搜索。如果確切的搜索短語出現在博客中,並且它在郵件中的扭曲姐姐,而不是來自博客條目的片段應該首先出現在搜索結果中,然後是來自該消息的片段。所以,我需要一個包含索引所有文本的表格,以及指向db中_any_other_table_的鏈接。
我的第一個想法是創建一個「鬆散的參考」一個獨立的模型,如:
class Content(models.Model):
obj_id= CharField() # An id of the object of a given model.
model= CharField(choices=("Message", "BlogEntry", "HowTo", "EntityProfile",))
content_type= CharField(choices=("subject", "body", "description", "tags",))
body= TextField()
但感覺那種錯誤......這有望圍繞引用的完整性創建時的不必要的麻煩和再鏈接實例。
所以,問題是 - django會提供什麼優雅的解決方案?什麼可能是解決問題的最有效的體系結構?
我不是要求直接回答,而是提示。
在此先感謝!
您是否正在尋找https://docs.djangoproject.com/zh/dev/ref/contrib/contenttypes/?也不要將CharFields用於對象ID。另外,你的「選擇」是錯誤的,它必須是2元組的元組。 – rantanplan
是的,我知道,只是簡化了一切。感謝提示,現在查看它! – funkifunki
我使用SOLR搜索文本charfields。 [Solr](http://www.chrisumbel.com/article/django_solr) – PepperoniPizza