繁体   English   中英

将CharField添加到haystack中的搜索索引中

[英]Add CharField to the search index in haystack

我在Django应用(1.8),干草堆(2.4.1)中使用搜索。 而且我希望能够仅使用名称的一部分来搜索带有自动完成功能的单词(EdgeNgramField)和单词,例如“ zo-zo on”(这不适用于EdgeNgramField)

我在下面累了: text_sec = indexes.CharField(use_template=True)但这对我不起作用。

这是我的代码,但是他不起作用:

class EventIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.EdgeNgramField(document=True, use_template=True)
    text_sec = indexes.CharField(use_template=True)
    id = indexes.CharField(model_attr='id')
    get_absolute_url = indexes.CharField(model_attr='get_absolute_url')
    description = indexes.CharField(model_attr='description', null=True)
    is_past = indexes.CharField(model_attr='is_past', default='false')
    date_start = indexes.DateTimeField(model_attr='date_start')

您将需要设置到架构中的不同字段以增强自动完成功能和常规搜索的能力。 在下面的代码中,我定义了两个字段,即一个是text字段,另一个是content_auto字段,其中填充了模型的标题。

class EventIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True, use_template=True)
    content_auto = indexes.EdgeNgramField(model_attr='title')
    text_sec = indexes.CharField(use_template=True)
    id = indexes.CharField(model_attr='id')
    get_absolute_url = indexes.CharField(model_attr='get_absolute_url')
    description = indexes.CharField(model_attr='description', null=True)
    is_past = indexes.CharField(model_attr='is_past', default='false')
    date_start = indexes.DateTimeField(model_attr='date_start')

当您要进行常规搜索时,应在文本字段中搜索content_auto上的自动建议。

您应该阅读文档http://haystacksearch.org/了解更多信息,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM