使用solr和haystack进行高级搜索?

时间:2012-08-15 13:02:12

标签: python solr django-haystack

假设您有疑问:

(apples OR oranges) AND fresh location:cityGoesHere

默认情况下,haystack使用自动转义数据的auto_query 所以搜索将被记录为:

INFO: [collection1] webapp=/solr path=/select/ params={spellcheck=true&facet=on&fl=*+score&start=0&q=(\(apples+or+oranges\)+and+fresh+location\:cityGoesHere)&spellcheck.count=1&...

当然,Solr会将“(”,“)”和“:”字符视为文字,因此不会进行分组,并且将针对默认字段搜索整个文本,并且将忽略位置字段

是否有任何方法可以通过haystack实现高级solr搜索,除了解析查询并将其中的不同部分分配给AutoQuery,Raw,Exact输入类型,如果认为合适,然后将SearchQuerySets链接在一起?

1 个答案:

答案 0 :(得分:-1)

我最终使用Raw haystack输入创建了自己的输入。

唯一的缺点是此输入使用Solr特定语法,因此不能与其他搜索后端一起使用。


稍后编辑:

AltParser也可以与Extended Dismax解析器结合使用。就像黄油一样!