是否使用Django Haystack?

是否使用Django Haystack?,django,django-haystack,Django,Django Haystack,所以这可能是一个显而易见的答案,但我不确定什么是正确的答案。我有一个简单的捐赠应用程序,通过表单创建捐赠对象。要添加的一个功能是允许按姓氏和/或电话号码搜索每个捐赠者 这是使用django haystack的好例子,还是我应该创建自己的过滤器?我在haystack中看到的问题是,每分钟都有一些捐款被提交,所以索引可能会成为一个问题吗?目前大约有13万条记录,而且还在不断增长。我已经开始实施haystack,但我意识到它可能没有必要 不要使用haystack——这是为了在底层关系数据库无法轻松处理

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

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

不要使用haystack——这是为了在底层关系数据库无法轻松处理时快速进行全文搜索。haystack的使用案例是,当您存储许多包含大量文本的大型文档时,您希望通过文档中的单词对其进行索引,以便轻松搜索

默认情况下,Django已经允许您轻松地索引/搜索文本记录。例如,使用和可以轻松搜索姓名或电话号码。(它通常会进行不区分大小写的包含搜索——这将查找部分匹配;例如,如果只搜索“Doe”或“ohn”,则会出现名称“John Doe”)

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

class Donor(models.Model):
    name = models.CharField(max_length=50)
    phone = models.CharField(max_length=15)
和一个admin.py,其中包含:

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应该自动使用的:

谢谢!这似乎更符合逻辑。现在用户正在使用admin搜索捐赠者,但我听说允许在那里执行大量搜索不是一个好主意,因为这可能会导致性能问题。我希望搜索的主要原因是,我需要允许“同一捐赠者”功能,即如果使用相同的信息(地址、姓名、电话等)进行另一次捐赠,但取款日期不同。搜索后,我希望他们能够单击捐赠者并使用预填充的信息打开捐赠表单。这也是为什么我还犹豫使用管理