1

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

每个 SearchIndex 都要求有一个(且只有一个)字段为 document=True。这向 Haystack 和搜索引擎指示哪个字段是在其中进行搜索的主要字段。

由于我看到的每个示例似乎都只是将这个“抛出”作为约定,“ text = indexes.CharField(document=True, use_template=True)”实际上是如何描述任何东西的呢?

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

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

4

1 回答 1

5

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

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

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

  2. 看上面。

于 2012-10-08T20:55:27.680 回答