django之是否使用 Django-Haystack
所以这对某些人来说可能是一个显而易见的答案,但我不确定正确答案是什么。我有一个简单的捐赠应用程序,其中捐赠者对象是通过表单创建的。要添加的功能是允许按姓氏和/或电话号码搜索每个捐赠者。
这是使用 django-haystack 的好案例还是我应该创建自己的过滤器?我可能会看到 haystack 的问题是每分钟都会提交一些捐款,所以索引会成为问题吗?目前大约有 130,000 条记录并且还在增加。我已经开始实现 haystack 但意识到它可能没有必要?
请您参考如下方法:
不要使用 haystack —— 当底层关系数据库无法轻松处理时,它用于快速全文搜索。 haystack 的用例是当您存储许多包含大量文本的大型文档时,您希望按文档中的单词索引这些文本,以便轻松搜索。
默认情况下,Django 已经允许您轻松地索引/搜索文本记录。例如,使用 admin backend simply specify search fields您可以轻松搜索姓名或电话号码。 (并且它通常会执行不区分大小写的包含搜索——这会找到部分匹配项;例如,如果您只搜索“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 应该自动使用:http://www.postgresql.org/docs/8.3/static/textsearch-indexes.html
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。