从概念的角度来看,Django Haystack document=True

pat*_*ckn 1 django django-haystack

所以,我试图围绕“ text = indexes.CharField(document=True, use_template=True)”的概念进行思考。从文档:

每个 SearchIndex 都要求有一个(并且只有一个)文档=True 的字段。这向 Haystack 和搜索引擎表明哪个字段是在其中进行搜索的主要字段。

既然我看到的每个例子似乎都把这个“扔进去”作为惯例,那么“ text = indexes.CharField(document=True, use_template=True)”究竟是如何描述任何东西的?

  1. 使用此约定时,引擎选择主要搜索模型中的哪个字段?

  2. model_attr=desired_model_attr这个text字段不应该总是有a ,所以引擎实际上可以知道哪个model_attr是搜索的主要字段?

pat*_*ckn 5

经过一些进一步的调查,我想我明白了 - 为可能有同样问题的其他人回答我自己的问题。

我相信我的困惑主要与use_template=True文档中的使用有关。当您使用模板时,您不需要model_attr在索引中设置 a ,因为您在数据模板中描述了文档结构(以及您希望搜索的模型字段)。所以要回答我的两个问题:

  1. 因为您指定 use_template=True,所以您必须在数据模板中描述要搜索的模型字段。不要设置use_template=True,如果你打算设置model_attr

  2. 看上面。