1

在数据库中对象被命名newsnews test

class ItemIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True)
    name = indexes.CharField(model_attr='name')
    name_alt = indexes.CharField(model_attr='name_alt')

    def get_model(self):
        return Serial

>>> from haystack.query import SearchQuerySet
>>> sqs = SearchQuerySet().all()
>>> sqs.count()
4
>>> SearchQuerySet().auto_query('new') # not working all query!
[]

如果使用haystack.backends.simple_backend.SimpleEngine它的工作。

Django==1.5.1

弹性搜索==0.90

django-haystack==master (2.0)

为什么????

4

1 回答 1

1

您似乎没有填充所有导入文档字段。

您的SearchIndex班级有以下字段:

text = indexes.CharField(document=True)
name = indexes.CharField(model_attr='name')
name_alt = indexes.CharField(model_attr='name_alt')

您已为namename_alt但未为定义数据源text。命令行搜索的输出显示该字段在搜索索引中为空。你有几个选择:

  • 从模型属性填充该字段
  • 使用一种prepare_FOO方法为该字段准备内容
  • 使用模板,使用字段的use_template参数text并在该模板中包含任何和所有内容

现在的后续问题是为什么auto_query失败但基本的 curl 查询有效?因为auto_query正在搜索内容- 文档 - 而那是缺失的。

于 2013-05-12T17:08:38.510 回答