1

我将 Solr 与 Sunspot (ruby) 一起使用,由于其他限制,我必须使用 Lucene 解析器而不是 DisMax 解析器。我需要能够同时使用用户名名字字段进行搜索。

如果我使用的是 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
4

2 回答 2

2

您可以在架构中使用复制字段说明从您要搜索的所有字段中创建“全部”字段。然后将 df 设置为该字段。

于 2010-11-17T13:36:11.017 回答
1

为了扩展 Karussell 的评论,默认字段就是这样,默认值。您可以明确指定所需的任意多个字段,只有当您不指定一个时,默认值才会起作用。

因此,类似查询username:foo first_name:bar将查找用户名为“foo”且 first_name 为“bar”的文档。

于 2010-11-17T16:23:07.900 回答