首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django -Hay堆栈在两个不同的应用程序中

问Django -Hay堆栈在两个不同的应用程序中
EN

Stack Overflow用户
提问于 2012-01-22 23:41:39
回答 1查看 1.1K关注 0票数 3

我是在一个应用程序和它的完美使用Hay堆栈。它是索引所有我需要的东西。但是,现在我创建了另一个具有不同模型和内容的应用程序,我想要对它进行Hay堆栈索引。这个想法是在我的网站上创建两个不同的“搜索”链接,每个应用程序一个。

但是,当我将第二个配置添加到草堆索引中时,我会遇到一些问题.

我创建了一个新的search_index.py (在我的新应用程序中),内容如下:

代码语言:javascript
复制
import datetime
from haystack.indexes import *
from haystack import site
from oportunity.models import Oportunity


class OportunityIndex(SearchIndex):
    title = CharField(document=True, use_template=True)
    body = CharField()
    date= DateTimeField()

    def index_queryset(self):
        return Oportunity.objects.filter(date=datetime.datetime.now())


site.register(Oportunity, OportunityIndex)

但是,当我运行python manage.py rebuild_index时,会得到以下错误:

第94行,在all_searchfields引发SearchFieldError(“所有带有'document=True‘的SearchIndex字段都必须使用相同的字段名”)。haystack.exceptions.SearchFieldError:所有带有“document=True”的SearchIndex字段都必须使用相同的字段名。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-23 01:48:03

这是一个已知的限制,在很少有不同的地方中已经讨论过,其中底层文档存储需要在所有搜索模型中一致地命名文档字段。

推荐的文档字段名是记录在干草堆文档中。总之,不能在一个索引上定义title = CharField(document=True),在另一个索引上定义content = CharField(document=True),它们必须被命名为相同的。

最佳实践:将索引字段命名为text。这是干草堆文档推荐的,将为您提供与第三方应用程序最兼容的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8965775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档