django-haystack:为具有外键和多对多字段的模型创建搜索索引的更好方法

Neo*_*Neo 7 django django-haystack

在使用带有django的haystack时,为具有外键和多对多字段的模型创建更好和更有效的搜索索引所需的建议.

样品型号:

class Resource(models.Model):
   title = models.CharField(max_length=255)
   description = models.TextField(blank=True, null=True)
   content = models.ForeignKey(ResourceContent, unique=True)
   metadata = models.ManyToManyField(MetaData)
Run Code Online (Sandbox Code Playgroud)

soF*_*eld 5

你不需要申报

metadata = models.ManyToManyField(MetaData)
Run Code Online (Sandbox Code Playgroud)

而是在文档中最佳实践所述的地方轻松使用索引模板中的循环

相关数据

相关数据有些问题需要处理,因为大多数搜索引擎在文档方面比在关系方面更好.解决此问题的一种方法是将相关子对象或对象去规范化为父对象的文档模板.包含外键的相关数据或简单的Django {% for %}模板标签来迭代相关对象可以增加文档中的显着数据.请注意包含的内容以及构造方式,因为这可能会影响搜索结果的排名

http://docs.haystacksearch.org/dev/best_practices.html?highlight=loop