标签: sunspot

Rails应用程序:Solr抛出RSolr :: Error :: Http - 执行搜索时找不到404

非常迷失,因为我没有对我的搜索做任何改变,这一切一直在起作用,但不知怎的,我有一个休息时间.作为Rails的新手,错误输出并没有给我足够的调试细节.

以下相关代码 - 询问您是否还想看其他任何内容.

home.html.slim(摘录搜索表单)

= form_tag search_venues_path, method: :get, id: 'search' do |f|
  .search-fields.span16
    p = text_field_tag :q, '', placeholder: "Search for coffee, hotel, etc", class: 'span7 search-field'
    p = text_field_tag :zip, '', placeholder: "Zip code or city name", class: 'span4 search-field'
    p = submit_tag "Find it", class: "btn-main span4"
    br
    = hidden_field_tag :latitude, ''
    = hidden_field_tag :longitude, ''
    p.current_location.hidden.offset1
      a Use my current location
Run Code Online (Sandbox Code Playgroud)

VenuesController.rb(带搜索功能的摘录)

def search
  if params[:zip].blank? && params[:latitude].blank?
    flash[:notice] = 'You must include a location …
Run Code Online (Sandbox Code Playgroud)

ruby solr ruby-on-rails sunspot ruby-on-rails-3

31
推荐指数
3
解决办法
2万
查看次数

在生产环境中设置带有导轨的太阳黑子solr

我尝试了各种链接,但我似乎无法找到一个很好的资源来创建一个在生产中使用rails的运行solr实例.

我知道你必须设置solr服务器进行生产.我已尝试使用tomcat设置solr,但我似乎无法将其链接到rails应用程序.

我有什么好的资源可供我使用吗?

谢谢

solr ruby-on-rails production-environment sunspot

28
推荐指数
2
解决办法
2万
查看次数

在太阳黑子中重新索引特定模型似乎没有时间差别

我的申请通常需要20分钟才能重新整合索引.有一个小桌子,有几条记录,我想再次重新索引.我想节省时间,所以我运行命令 rake sunspot:solr:reindex[500,Deal].这是直接从Github自述文件中获取的,并且假设仅重新索引一个模型.

在此命令中重新索引所需的时间仍为20分钟,因此所用时间没有差异.难道我做错了什么?

solr sunspot

18
推荐指数
2
解决办法
8893
查看次数

sunspot_rails保存后不重新索引模型

我有一个模型,它部署一个延迟的作业,更新它的一些属性.该模型被宣布为"可搜索"......

searchable do
  text :content, :stored => true  
end
Run Code Online (Sandbox Code Playgroud)

...我认为在保存后会重新索引.在测试中,似乎并非如此.如果我运行:rake sunspot:reindex,那么一切都按预期工作.可能导致此问题的原因是什么?

solr ruby-on-rails sunspot sunspot-rails

17
推荐指数
3
解决办法
6138
查看次数

太阳黑子轨道:在呼叫时包含相关模型.结果

假设我想在我的应用中搜索事件.当我显示结果时,我想显示例如创建事件的人.

有没有办法在.includes(:user)某处添加,以避免不必要的查询(每个事件一个)?我在文档中找不到它.我应该用事件索引用户名吗?但我必须保持用户信息最新...

谢谢

ruby-on-rails sunspot model-associations ruby-on-rails-3 sunspot-rails

16
推荐指数
2
解决办法
3225
查看次数

Sunspot如何修改Solr的schema.xml?是否会修改它?

如果我错了,请告诉我,但我认为solr只需要schema.xml中已经提到过的字段.所以,如果我有一个名为'title'的字段,我需要在模式中提到它.

在Sunspot的文档中没有提到修改schema.xml.我只是想知道Sunspot如何修改schema.xml,允许自定义字段输入索引.

我也知道Sunspot使用RSolr来做事情.因此,如果有办法修改架构并使用RSolr将数据从DB重新加载到Solr,请告诉我.

solr ruby-on-rails sunspot ruby-on-rails-3 sunspot-rails

15
推荐指数
1
解决办法
4962
查看次数

有多种型号的太阳黑子(在Rails中)

我有三个型号(User,Tag,Product)和他们互动ST User有很多TagsProducts.

出于搜索目的,我希望能够搜索(使用一个搜索栏)用户名,标签名称和产品说明.我还想搜索产品页面,但这仅与标签名称和产品说明相关.

这是两个例子:

搜索:"Linus Torvalds"返回三个模型中Linus Torvalds的所有实例,其中任何用户名实例都放在更高的位置.

搜索:带有年龄的"Linux":"20-25"返回所有包含名称/描述中包含"Linux"且属于该年龄范围的用户的用户,以及包含"Linux"标签的用户以及谁拥有属于该年龄段的产品.请注意,如果搜索没有包含年龄,那么它将默认为适合"Linux"部分的所有人而不是任何人.

我的问题是这样做的最佳方法是什么?我应该用自己的控制器创建搜索模型吗?我应该忽略它并在共享文件夹中包含搜索部分吗?还有哪些其他方法?

非常感谢.

ruby-on-rails sunspot

14
推荐指数
1
解决办法
5333
查看次数

Sunspot_Rails - 页面上未定义的方法`searchable'

我有一个带有searchable块的模型,如下所示:

class Contact < ActiveRecord::Base
  searchable do
    text :contact_name, :company_name, :contact_email
  end  
end
Run Code Online (Sandbox Code Playgroud)

在控制器的index操作中,我正在调用Contact.new,它在页面上给出了一条错误消息,该消息当前正在我们的临时服务器上运行:

未定义的方法`searchable'用于#<Class:0xce0bf80>

堆栈跟踪searchable通过Contact.new控制器中的线指向模型中的块.

当我在本地(网页或控制台)或通过Staging服务器上的控制台运行代码时,此错误不会出现 - 仅在Staging网页上.

Solr服务在Staging服务器上正常运行,并且数据已成功编制索引.关于为什么它不在舞台上打球的任何理论都将被接受.

编辑

在回答Nick的问题时,Gemfile只有Sunspot的这一行: gem 'sunspot_rails'

对于Gemfile.lock,这些是我能看到的包含Sunspot或Solr引用的所有行:

GEM
  rsolr (0.12.1)
    builder (>= 2.1.2)
  sunspot (1.2.1)  
    escape (= 0.0.4)  
    pr_geohash (~> 1.0)  
    rsolr (= 0.12.1)  
  sunspot_rails (1.2.1)  
    nokogiri  
    sunspot (= 1.2.1)

DEPENDENCIES
  sunspot_rails
Run Code Online (Sandbox Code Playgroud)

solr sunspot ruby-on-rails-3 sunspot-rails sunspot-solr

13
推荐指数
3
解决办法
2728
查看次数

SocketError(getaddrinfo:名称或服务未知) - Sunspot/Solr Rails开发

使用Passenger,Capistrano,nginx和MySQL将我的rails 3.0.10应用程序部署到Ubuntu 10.04服务器时遇到了很多麻烦(而apache2则更麻烦).将rake降级到0.8.7之后它终于正常工作,但现在Sunspot/Solr在我的开发环境中不起作用.sunspot_solr服务器正在运行,我可以获取服务器的URL,并通过浏览器连接到它.该网址与sunspot.yml中的网址相同.我不知道我做了什么导致了这个问题.我之前遇到过与太阳黑子相同的问题(在降级rake之前).然后它突然又开始工作了.我不知道为什么......我试过两个版本的太阳黑子(1.2.1和1.3.0).两者都提前工作,但现在不再工作了.

这是我收到的错误消息:

SocketError (getaddrinfo: Name or service not known):
app/models/resource.rb:128:in `text_search'
app/controllers/search_controller.rb:21:in `index'

Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.0ms)
Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (161.6ms)
Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (168.9ms)
Run Code Online (Sandbox Code Playgroud)

控制器有点乱,所以我只包括相关部分:

@criterion = params[:criterion]
@sort_direction = params[:sort_direction]
if @criterion && @sort_direction
  session["sort_search"] = @criterion + "|" + @sort_direction 
elsif session["sort_search"]
  @criterion = session["sort_search"].split("|")[0]
  @sort_direction = session["sort_search"].split("|")[1]
else
  @criterion = "updated_at"
  @sort_direction = "desc"
 end
@search = Resource.text_search(session[:search_params] || "", current_user, @criterion, @sort_direction) 
@resources = @search.results
Run Code Online (Sandbox Code Playgroud)

我没有更改控制器中的任何内容,因为它正在工作.

我的gemfile:

source 'http://rubygems.org'
gem 'rake'
gem 'rails', '3.0.10' …
Run Code Online (Sandbox Code Playgroud)

sunspot ruby-on-rails-3 sunspot-rails sunspot-solr

13
推荐指数
2
解决办法
6万
查看次数

无法重新索引太阳黑子SOLR - 错误 - RSolr ::错误:: Http - 500内部服务器错误

每次我尝试重新索引使用...

耙太阳黑子:solr:reindex

这些错误消息始终显示:

错误 - RSolr ::错误:: Http - 500内部服务器错误 - 正在重试...错误 - RSolr ::错误:: Http - 500内部服务器错误 - 忽略...错误 - RSolr ::错误:: Http - 500内部服务器错误 - 正在重试...错误 - RSolr ::错误:: Http - 500内部服务器错误 - 忽略...

我试图停止然后开始使用...

rake sunspot:solr:stop
rake sunspot:solr:start
Run Code Online (Sandbox Code Playgroud)

但什么都没发生.

现在每次我尝试在localhost中运行我的应用程序...

这是错误:

RSolr::Error::Http - 500 Internal Server Error
Error: Severe errors in solr configuration.

Check your log files for more detailed information on what may be wrong.

If you want solr to continue after configuration errors, change: 

 <abortOnConfigurationError>false</abortOnConfigurationError> …
Run Code Online (Sandbox Code Playgroud)

ruby solr ruby-on-rails sunspot

13
推荐指数
3
解决办法
9746
查看次数