2

の Haystack/xapian 検索インデックスを取得しましたdjango.contrib.auth.models.User。テンプレートは単純に

{{object.get_full_name}}

ユーザーが名前を入力して検索できるようにするためです。

私の問題は次のとおりです。たとえば、Sri(私のフル ネーム) を検索すると、私の名前に関連するユーザー オブジェクトの結果が表示されます。しかし、Sri Raghフルネームと姓の一部を検索しても、結果は得られません。

部分的なクエリで適切な結果が得られるように、Haystack を設定するにはどうすればよいですか? (私は本質的にそれを検索したいのです*Sri Ragh*が、ワイルドカードが実際にそのトリックを行うかどうか、またはそれらを実装する方法はわかりません)。

これは私の検索クエリです:

results = SearchQuerySet().filter(content='Sri Ragh')
4

2 に答える 2

5

私は同様の問題を抱えていましたが、回避策またはおそらく修正として、クエリルックアップを変更できます

results = SearchQuerySet().filter(content__startswith='Sri Ragh')

問題は、django-haystack が検索エンジンのすべての用語を実装していないことです。もちろん、これを行うことができます。

results = SearchQuerySet().raw_search('READ THE SEARCH ENGINE QUERY SYNTAX FOR GET WILDCARD LOOKUPS')

Django-haystack が言うように、これは移植性がありません。

于 2011-01-14T17:11:26.720 に答える
-1

icontains または startswith を使用できます。

これには注意してください。クエリがたとえば「r」の場合、コンテンツに「r」が含まれるすべての「モデル」エンティティが表示されます。

Model.objects.filter(content__icontains=query)

Model.objects.filter(content__startswith=query)

ドキュメントを見てください

于 2015-03-29T08:41:58.200 に答える