1

我们正在使用 sunspot-rails 连接到 websolr。我正在尝试找到一种将 http 标头添加到传出请求的方法。这些示例仅适用于 rsolr,但不适用于 sunspot-rails。( https://github.com/onemorecloud/websolr-demo-advanced-auth )。

目的是使用标头进行身份验证。有没有办法从 sunspot-rails 添加/修改 http 标头以进行索引和查询调用?

4

1 回答 1

0

我想我找到了答案: https ://groups.google.com/forum/#!searchin/ruby-sunspot/authentication/ruby-sunspot/-FtTQdg4czs/mvOuB7g8yCgJ

outoftime 在此引用的示例将是检索 http 对象的解决方案。

class SolrConnectionFactoryWithTimeout
  def initialize(timeout = 60)
    @timeout = timeout
  end

  def connect(opts = {})
    client = RSolr.connect(opts)
    solr_connection = client.connection
    http = solr_connection.connection
    http.read_timeout = @timeout
    client
  end
end

Sunspot::Session.connection_class =
SolrConnectionFactoryWithTimeout.new(timeout.to_f)

然后与http://ruby-doc.org/stdlib-2.0/libdoc/net/http/rdoc/Net/HTTP.html#label-Setting+Headers结合使用

req = Net::HTTP::Get.new(uri)
req['If-Modified-Since'] = file.mtime.rfc2822
于 2013-07-01T10:12:11.430 回答