1

假设我有一个定义如下的模型(标题和描述分别是字符串和文本字段):

class Entity < ActiveRecord::Base
  # Skipped

  searchable do
    text :title,
    text :description
  end
end

我希望能够使用像“title:foo description:bar”这样的搜索查询,它假设只检索那些字段满足搜索条件的实体,即标题包含“foo”和/或描述包含“bar”的实体。确切的语法无关紧要。

我试图在我的演示应用程序的搜索字段中输入这样的查询,但显然它没有返回任何结果 :-)

那么,Sunspot 查询解析器是否支持字段查询(不确定该术语是否正确)?

谢谢。

4

1 回答 1

2

这是 Solr 的 edismax 查询解析器应该支持的功能。但是 Sunspot 当前默认使用较旧的 dismax 查询解析器。

要在您的搜索中启用 edismax,请在您的search块中尝试以下行:

adjust_solr_params { |p| p[:defType] = 'edismax' }

(这不是我的想法;如果我错过了语法,请告诉我。)

于 2013-01-24T21:02:39.810 回答