假设您有疑问:
(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链接在一起?
答案 0 :(得分:-1)
我最终使用Raw haystack输入创建了自己的输入。
唯一的缺点是此输入使用Solr特定语法,因此不能与其他搜索后端一起使用。
稍后编辑:
AltParser也可以与Extended Dismax解析器结合使用。就像黄油一样!