django 干草堆 : Better ways of creating search indexes for models having foreign key and many-to-many fields

标签 django django-haystack

在将 haystack 与 django 一起使用时,为具有外键和多对多字段的模型创建更好、更有效的搜索索引所需的建议。

sample 型号:

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)

最佳答案

你不需要申报

metadata = models.ManyToManyField(MetaData)

而是在索引模板内轻松使用循环,最佳实践在文档中说

相关数据

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

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

关于django 干草堆 : Better ways of creating search indexes for models having foreign key and many-to-many fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6662122/

相关文章:

python - celery 自动重新加载不起作用

python - 从django中的字典中解析html中的值

Django Haystack - 未设置拼写建议上下文变量

使用属性进行 Django-haystack 结果过滤?

python - 嗖:不应该或只增加结果吗?

python - ForeignKey 默认值中 int() 错误的文字无效

python - Django - 禁用表单选择字段验证

python - 如何查看在 Django 的 manage.py test 命令期间运行了哪些测试

django - Haystack 与 Django 1.4 不兼容?

python - Django Haystack 过滤