【问题标题】:Sunspot:solr - empty response太阳黑子:solr - 空响应
【发布时间】:2013-09-16 06:33:39
【问题描述】:

我正在尝试获取给定查询的 solr 响应。我检查了 localhost:8983 上的 solr 查询界面,它工作正常,对查询给出了所需的响应。我想从每个响应中选择 productId 字段并打印出来。以下是我正在使用的代码:

#!/usr/bin/ruby
# encoding: utf-8

require 'rubygems'
require 'solr'

solr = Solr::Connection.new('http://localhost:8983/solr')
response = solr.query('necklace')

puts "the response is:"
#puts response
puts "\n"
response.each do |hit|
    puts hit['productId'] 
end

但它没有打印任何东西,我的回复似乎是空的。我该如何解决这个问题

【问题讨论】:

  • 这些反斜杠是干什么用的?不应该是puts hit['productId']puts hit[:productId] 吗?
  • 你能告诉我这个puts hit.class,它将帮助我们快速回答。
  • @RajeshKolappakam :我没有收到语法错误,但也没有结果
  • @ArupRakshit : 不打印任何东西

标签: ruby-on-rails ruby solr sunspot-solr


【解决方案1】:

尝试将第 16 行更改为:

  puts hit['productId']

【讨论】:

  • 在模型中配置searchable 块后,您是否使用rake sunspot:reindex 索引数据?
  • @Mattherick:@ra​​w_response="{'responseHeader'=>{'status'=>0,'QTime'=>1,'params'=>{'fl'=>',score','q'=>'necklace','wt'=>'ruby','qt'=>'standard'}},'response'=>{'numFound'=>0,'start' =>0,'maxScore'=>0.0,'docs'=>[]}}\n", @data={"responseHeader"=>{"status"=>0, "QTime"=>1, "params "=>{"fl"=>",score", "q"=>"necklace", "wt"=>"ruby", "qt"=>"standard"}}, "response" =>{"numFound"=>0, "start"=>0, "maxScore"=>0.0, "docs"=>[]}}, @header={"status"=>0, "QTime"=> 1, "params"=>{"fl"=>"*,score", "q"=>"necklace", "wt"=>"ruby", "qt"=>"standard"}}, @response ={"numFound"=>0, "start"=>0, "maxScore"=>0.0, "docs"=>[]}>
  • @zrl3dx :不,我虽然索引已经完成,因为界面正在给出结果。我需要单独索引太阳黑子吗
  • 是的,默认情况下,sunspot 只会从新实例添加新索引,但不会在您第一次配置时为所有内容编制索引(或添加新的searchable 字段)。
  • @naka: 应该很简单,只要调用 rake 任务,至少如果你会使用sunspot_rails,我不知道是不是故意的,但你已经列出来了清洁solr,所以可能没有太阳黑子,它是 solr 周围的红宝石“包装器”,用于提供使用 solr 引擎的简单方法,但我不确定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-22
  • 2014-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多