【问题标题】:Django haystack with Solr - how to specify GET parameters?带有 Solr 的 Django haystack - 如何指定 GET 参数?
【发布时间】:2015-09-14 14:48:41
【问题描述】:

我在 Solr 4.9 中使用 django_haystack。我已经修改了 /select 请求处理程序,以便所有请求默认使用 dismax。

问题是有时我想查询特定字段,但我找不到一种方法来获取SearchQuerySet api 以使其与 dismax 很好地配合使用。所以基本上我想向 Solr 发送以下(或等效)请求:q=hello&qf=content_auto

我尝试了以下方法:

标准 API

SearchQuerySet().filter(content_auto='hello') 

# understandably results in the following being sent to solr:
q=content_auto:hello

AltParser

query = AltParser('dismax', 'hello', qf="content_auto")
sqs = SearchQuerySet().filter(content=query)

# Results in
q=(_query_:"{!dismax+qf%3Dcontent_auto}hello")

原始

query = Raw('hello&qf=content_auto')

# results in
q=hello%26qf%3Dcontent_auto

最后一种方法非常接近,但由于它避开了=&,它似乎无法正确处理查询。

处理此问题的最佳方法是什么?我不需要非 dismax 查询,因此最好保持 /select 请求处理程序相同,而不是将每个查询包装在 RawAltParser 中。

【问题讨论】:

    标签: django solr django-haystack


    【解决方案1】:

    简而言之,答案是如果不创建自定义后端和 SearchQuerySet 就无法完成。最后我不得不恢复到标准配置并使用AltParser 指定 dismax,这有点烦人,因为它会影响您的拼写建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      相关资源
      最近更新 更多