2

假设您有一个查询:

(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 链接在一起?

4

1 回答 1

-1

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

唯一的缺点是这个输入使用了 Solr 特定的语法,所以它不能与其他搜索后端一起使用。


后期编辑:

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

于 2012-08-17T10:41:03.567 回答