使用带有太阳黑子的Solr的Lucene Parser进行多场搜索

时间:2010-11-17 01:05:28

标签: ruby lucene solr sunspot

我正在使用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

2 个答案:

答案 0 :(得分:2)

您可以在架构中使用copy fields instructions,以便在要搜索的所有字段中创建“全部捕获”字段。然后将df设置为该字段。

答案 1 :(得分:1)

要扩展Karussell的评论,默认字段就是默认字段。您可以明确指定所需的字段数,只有在未指定默认字段时才会显示。

因此像username:foo first_name:bar这样的查询会找到用户名为“foo”且first_name为“bar”的文档。

相关问题