2

postgresql と django で部分テキスト検索を実装しようとしましたが、次のクエリを使用しました

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

これは、完全に一致するレコードを返します。つまり、クエリ __contains="welcome world" を使用してレコード "welcome to the new world" との一致をチェックすると、ゼロ レコードが返されます。

この部分テキスト検索を postgresql-8.4 と 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 headline LIKE 'search text%' ") を作成するので、フルテキストの代替手段を探している場合は、PostgreSQL に組み込まれているTsearch2拡張機能またはXapianSolrなどの他のオプションを確認できます。スフィンクスなど

前述の各エンジンには、統合を容易にする Django アプリがあります。Xapian統合用の Djapian または1 つのアプリでの複数の統合用のHaystackです。

于 2013-04-09T07:01:48.043 に答える