首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >要不要使用Django-Haystack?

要不要使用Django-Haystack?
EN

Stack Overflow用户
提问于 2012-11-03 03:02:04
回答 1查看 1.2K关注 0票数 3

所以这对一些人来说可能是一个显而易见的答案,但我不确定正确的答案是什么。我有一个简单的捐赠应用程序,捐赠者对象是通过表单创建的。要添加的一个功能是允许按姓氏和/或电话号码搜索每个捐赠者。

这是一个使用django-haystack的好例子,还是我应该创建我自己的过滤器?我可能会看到的问题是,每分钟都有一些捐款被提交,那么索引会是一个问题吗?目前大约有13万条记录,而且还在不断增加。我已经开始实现haystack,但已经意识到它可能不是必要的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-03 03:08:51

不要使用haystack --这是为了在底层关系数据库不容易处理的情况下进行快速全文搜索。haystack的用例是,当您存储许多包含大量文本的大型文档时,您希望在文档中按单词进行索引,以便可以轻松地进行搜索。

默认情况下,Django已经允许您轻松地索引/搜索文本记录。例如,使用admin backend simply specify search fields,您可以轻松地搜索姓名或电话号码。(它通常会执行不区分大小写的包含搜索--这会找到部分匹配;例如,如果只搜索"doe“或”ohn“,就会出现"John Doe”这个名字)。

因此,如果您的models.py具有:

代码语言:javascript
复制
class Donor(models.Model):
    name = models.CharField(max_length=50)
    phone = models.CharField(max_length=15)

和带有以下内容的admin.py:

代码语言:javascript
复制
from django.contrib import admin
from mysite.myapp.models import Donor

class DonorAdmin(admin.ModelAdmin):
    model = Donor
    search_fields = ['name', 'phone']

admin.site.register(Donor, DonorAdmin)

它应该工作得很好。如果需要改进,请考虑向基础RDBMS添加全文索引。例如,使用postgres,您可以在底层数据库中创建一个带有一行的文本搜索索引post 8.3,django应该自动使用:http://www.postgresql.org/docs/8.3/static/textsearch-indexes.html

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

https://stackoverflow.com/questions/13201473

复制
相关文章

相似问题

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