我正在使用Solr和Sunspot(ruby),并且由于其他限制,我必须使用Lucene解析器而不是DisMax解析器。我需要能够同时使用用户名以及 first_name 字段进行搜索。
如果我使用的是DisMax,我可以指定qf =“username + first_name”,但只使用lucene解析器,我只能设置df(默认字段),并且不允许我指定多个字段。
如何使用lucene解析器搜索多个字段?
更新:答案:只需使用q参数
adjust_solr_params do |params|
params[:defType] = "lucene"
params[:q] = "username:\"#{params[:q]}\" OR first_name:\"#{params[:q]}\""
end
答案 0 :(得分:2)
您可以在架构中使用copy fields instructions,以便在要搜索的所有字段中创建“全部捕获”字段。然后将df设置为该字段。
答案 1 :(得分:1)
要扩展Karussell的评论,默认字段就是默认字段。您可以明确指定所需的字段数,只有在未指定默认字段时才会显示。
因此像username:foo first_name:bar
这样的查询会找到用户名为“foo”且first_name为“bar”的文档。