3

django-sphinxを使用して検索すると、結果が得られます。_sphinxは、68件の結果があったことを示していますが、それらを反復処理すると、最初の20件しか取得できません。

これを回避する方法があることは確かであり、これは仕様によるものですが、公式には私を困惑させています。完全なクエリセットを取得する方法を知っている人はいますか?

4

3 に答える 3

2

私はついにこれを理解しました。

どうやら、クエリセットにアクセスするまで、クエリセットは20ヒットしか返しません。またはそのようなもの。

したがって、全体を明示的に反復する場合は、次のことを行う必要があります。

for result in results[0:results.count()]:
    print result

または、その趣旨の何か。これにより、全体が明示的に照会されます。うーん。これは明確に文書化する必要があります...しかし、そうではありません。

于 2010-04-19T23:32:04.370 に答える
0

ソースをハッキングした後、_limit変数を明示的に設定しました。ジョブを実行し、実際の制限を発行します。

qs = MyEntity.search.query(query_string)
qs._limit = limit
for result in qs:
    print result
于 2011-02-10T18:00:19.767 に答える
0

私のために働く:

sphinx構成ファイル内:

   max_matches     = 5000

djangoコード:

   desc_obj = Dictionary.search.query( search_desc )
   desc_obj._maxmatches = 5000

または設定で:

   SPHINX_MAX_MATCHES = 5000
于 2015-10-13T23:10:31.587 に答える