django-sphinxを使用して検索すると、結果が得られます。_sphinxは、68件の結果があったことを示していますが、それらを反復処理すると、最初の20件しか取得できません。
これを回避する方法があることは確かであり、これは仕様によるものですが、公式には私を困惑させています。完全なクエリセットを取得する方法を知っている人はいますか?
django-sphinxを使用して検索すると、結果が得られます。_sphinxは、68件の結果があったことを示していますが、それらを反復処理すると、最初の20件しか取得できません。
これを回避する方法があることは確かであり、これは仕様によるものですが、公式には私を困惑させています。完全なクエリセットを取得する方法を知っている人はいますか?
私はついにこれを理解しました。
どうやら、クエリセットにアクセスするまで、クエリセットは20ヒットしか返しません。またはそのようなもの。
したがって、全体を明示的に反復する場合は、次のことを行う必要があります。
for result in results[0:results.count()]:
print result
または、その趣旨の何か。これにより、全体が明示的に照会されます。うーん。これは明確に文書化する必要があります...しかし、そうではありません。
ソースをハッキングした後、_limit変数を明示的に設定しました。ジョブを実行し、実際の制限を発行します。
qs = MyEntity.search.query(query_string)
qs._limit = limit
for result in qs:
print result
私のために働く:
sphinx構成ファイル内:
max_matches = 5000
djangoコード:
desc_obj = Dictionary.search.query( search_desc )
desc_obj._maxmatches = 5000
または設定で:
SPHINX_MAX_MATCHES = 5000