2

Tried to implement partial text search with postgresql and django,used the following query

Entry.objects.filter(headline__contains="search text")

This returns records having exact match,ie suppose checking for a match against the record "welcome to the new world" with query __contains="welcome world" , returns zero records

How can i implement this partial text search with postgresql-8.4 and django?

4

1 回答 1

2

如果您想要这种精确的部分搜索,您可以使用startswitch字段查找方法:Entry.objects.filter(headline__startswith="search text")。在https://docs.djangoproject.com/en/dev/ref/models/querysets/#startswith查看更多信息。

此方法创建一个 LIKE 查询(“ SELECT ... WHERE header LIKE 'search text%' ”),因此如果您正在寻找全文替代方案,您可以查看 PostgreSQL 内置的Tsearch2扩展或其他选项,例如XapianSolr狮身人面像

前面提到的每个引擎都有 Django 应用程序,使它们更易于集成:用于 Xapian 集成的Djapian或用于在一个应用程序中进行多个集成的Haystack

于 2013-04-09T07:01:48.043 回答