尝试使用postgresql和django实现部分文本搜索,使用以下查询
Entry.objects.filter(headline__contains="search text")
这会返回完全匹配的记录,即假设查询匹配记录“欢迎来到新世界”,查询__contains =“welcome world”,返回零记录
如何使用postgresql-8.4和django实现这种部分文本搜索?
答案 0 :(得分:2)
如果您想要这种精确的部分搜索,可以使用 startswitch 字段查找方法:Entry.objects.filter(headline__startswith =“搜索文本”)。请在https://docs.djangoproject.com/en/dev/ref/models/querysets/#startswith查看更多信息。
此方法创建一个LIKE查询(“ SELECT ... WHERE标题LIKE'搜索文本%'”)所以如果您正在寻找全文替代品,您可以查看PostgreSQL的内置{ {3}}扩展程序或其他选项,例如Tsearch2,Xapian,Solr等。
前面提到的每个引擎都有Django应用程序,可以更容易集成:Sphinx用于Xapian集成,或Djapian用于在一个应用程序中进行多个集成。