我使用solr作为django-haystack的搜索后端。查看日志时,我可以看到对solr的查询填充了“fq”。
INFO: [] webapp=/solr path=/select/ params={fl=*+score&start=0&q=yyy&wt=json&fq=django_ab:(xxx)&rows=10} hits=5 status=0 QTime=0
我怀疑这是怎样的“fq”参数我是由haystack填充的。我正在使用SearchQuerySet.filter在solr文档中添加搜索。 我注意到的另一件事是无论搜索查询是什么,fq保持不变。 fq与模型索引的django应用程序有关吗?我应该担心它会不变吗。
答案 0 :(得分:1)
如果narrow_queries不是None: kwargs ['fq'] = list(narrow_queries)
答案 1 :(得分:1)
Haystack本身使用fq
参数仅返回具有某个Django ContentType
的命中(实际上是某个Model类)。
关于SOLR' fq
:
在查询中允许多次使用此参数。高速缓存某个fq
参数的结果命中子集。因此,对于经常检索的子集使用fq
是有意义的(例如,在您网站的菜单中使用的类别搜索)。
要通过Haystack使用fq
参数,请在SearchQuerySet上使用narrow()
: