Tag: 太阳黑子

在Solr和太阳黑子中自动完成

我正在使用RoR构建一个网站,我使用太阳黑子和solr搜索引擎。 我需要使用自动完成function,但我不能。 我知道Solr有一个叫做suggester的新东西,但我不知道如何在太阳黑子和rails应用程序中使用它。 我找到了一个名为sunspot_autocomplete的gem,我按照写的内容,但是当我尝试重新索引时,我得到了这个错误: rake aborted! RSolr::Error::Http – 400 Bad Request Error: ERROR:unknown field ‘tags_ac’ 可搜索的模型称为Experience ,我将此块放入其中 searchable do text :tags, :boost => 3 text :title, :boost => 2 text :tips autocomplete :tags, :using => :tags end 最后我发现这个博客听起来不错,但我不明白:( http://www.binrand.com/post/3338898-autocomplete-solr-architecture-rails-3-2-solr-1-4-with-sunspot-solr-gem.html 我需要您的帮助,将自动填充function放在我的应用中。 非常感谢 :) 更新:我终于修复并在搜索框中进行了演示 。

对两个字段进行两次全文查询

我需要做类似以下的事情,这意味着在两个字段上发出两个不同的查询。 Video.search do fulltext weighting_factors, {:fields => :categories_as_string} fulltext prefs, {:fields => :similar_as_string} end 目前,我强制这两个字段包含具有单独命名空间的标记,并将查询组合以应用于这两个字段。 我认为这是等价的,因为prefs永远不会匹配categories_as_string中的东西,但是维护起来很痛苦。 有没有办法在上面进行查询? query = prefs + weighting_factors search = Video.search do fulltext query do fields :similar_as_string, :categories_as_string end end

我错过了Solr-Sunspot设置的哪一部分?

我以为我有这个蛋糕..但任何时候我对任何关键字进行查询它不会从SQL加载任何表。 我没有错。 user.rb searchable do string :first_name string :last_name string :name string :email time :created_at end users_controller.rb class Admin::UsersController (params[:page] && params[:page].to_i || 1), :per_page => 20 query.order_by(‘created_at’, ‘desc’) end s.execute! @users = s.results render :action => ‘index’ end 然后我跑了: $> script/console $> User.reindex 当我完全没有搜索时..成功显示所有User结果 我相信我要将所有这些字符串标记转换为文本标记,但会返回此错误: Sunspot::UnrecognizedFieldError in Admin/usersController#index No field configured for User with […]

太阳黑子返回模型的所有结果

我在我的控制器中有这样的: def boards @user = User.find_by_slug(params[:id]) @search = @user.boards.solr_search do |s| s.fulltext params[:search] s.keywords params[:search] s.order_by :created_at, :desc s.paginate :page => params[:page], :per_page => 1 end @boards = @search.results respond_to do |format| format.html { render :layout => nil}# panel.html.erb format.json { render json: @boards } format.js end end 在我看来: :true %> 控制器中的@user.boards是属于用户的每个板。 但我得到了像Boards.all这样的每Boards.all 。 我想只获得属于用户的每一块板。 […]

使用Susnpot Gem进行Solr搜索

我目前正在使用太阳黑子gem在我的rails应用程序中实现全文搜索。 通过Sunspot / Solr在我的网站上查询正在运行并返回正确的结果。 但是,当我尝试使用Solr管理页面进行查询时,我很难显示结果。 使用查询字符串*:*我可以显示索引数据库中包含的所有结果,但我无法进行正确的查询。 如果我尝试使用*:*以外的字符串进行查询,例如test ,则不返回任何结果,我留下: 0 21 *,score on 0 test 2.2 10 使用字符串: test在实际rails应用程序上进行相同的查询返回超过100个结果。 如何在Solr管理页面中进行查询返回与在rails应用程序中进行的查询相同的项目?

EdgeNGramFilterFactory无法正常工作(没有索引?)

我无法让ngrams工作。 这是我的schema.xml: 我的数据库有一堆条目 “伊丽莎白” 和 “伊丽莎白” 当我试图查询“伊丽莎白”时,我只得到“伊丽莎白”而不是“伊丽莎白”。 奇怪的是,当我查看solr admin时,Analysis页面显示EdgenGramFilterFactory确实可用,并导致“Elizabeths”扩展为 e el el eliz eliza elizab elizabe elizabet elizabeth 看起来索引器似乎没有接受这个。 当我将同义词filter从查询块移动到索引块时,我遇到了同样的问题。 也就是说,当我在查询块中有同义词filter时,它可以工作,但是当我把它放在索引块中时,它没有任何效果。 我重新启动了太阳黑子并重新编制了多次索引。 没有骰子。 有任何想法吗? 如何直接检查索引词列表?

太阳黑子和RSpec失败。 提交似乎没有起作用

我有一些测试用RSpec运行Rails站点,但是尽管遵循了说明,事情本身并不是很好。 我通过工厂创建一篇文章,运行Sunspot.commit,然后检查结果。 我似乎总是画一个空白。 当我通过控制台或通过网站手动测试时,所有工作都可以找到。 有任何想法吗? 如何输出太阳黑子日志以查看发生了什么? 我的Gemfile有以下内容,我正在运行Rails 3.1.1 gem ‘sunspot’, ‘1.2.1’ gem ‘sunspot_rails’ gem ‘sunspot_test’ 非常感谢,格雷姆

solr,太阳黑子,坏请求,非法字符

我正在向我的项目介绍太阳黑子搜索。 我只是通过名字字段搜索获得了POC。 当我介绍说明字段并重新索引销售时,我收到以下错误。 ** Invoke sunspot:reindex (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute sunspot:reindex Skipping progress bar: for progress reporting, add gem ‘progress_bar’ to your Gemfile rake aborted! RSolr::Error::Http: RSolr::Error::Http – 400 Bad Request Error: {‘responseHeader’=>{‘status’=>400,’QTime’=>18},’error’=>{‘msg’=>’Illegal character ((CTRL-CHAR, code 11)) at [row,col {unknown-source}]: [42,1]’,’code’=>400}} Request Data: “ItemsDesign 1322ItemsDesignActiveRecord::BaseItemsDesignRiver City Clocks Musical Multi-Colored […]

Sunspot / Solr全文搜索 – 如何索引Rails关联

是否有可能通过与太阳黑子的关联进行索引? 例如,如果客户拥有多个联系人,我希望我的客户模型上有一个“可搜索”块,用于索引Contact#first_name和Contact#last_name列,以便在Customer上进行搜索。 acts_as_solr有一个:include选项。 我只是将关联的列名称组合到Customer上的文本字段中,如下所示,但这似乎不太灵活。 searchable do text :organization_name, :default_boost => 2 text :billing_address1, :default_boost => 2 text :contact_names do contacts.map { |contact| contact.to_s } end 有什么建议?

Rails和Sunspot方面和过滤

这里几乎是一个noobie,所以我感谢任何人可以给予的帮助。 我正试图通过太阳黑子在我的网站上添加分面。 Ryan刚刚发布了一个很棒的Railscast,它让我开始: http : //railscasts.com/episodes/278-search-with-sunspot 。 我得到了它的工作,并能够添加其他方面。 我的问题是方面彼此独立。 如果我在3个不同的属性上有3个方面,当我选择了一个已经选中的方面时,我想只显示落入这两个方面的结果。 截至目前,它只是从一个方面切换到另一个方面。 我觉得这不应该那么困难,但我无法弄清楚如何去做。 我确实找到了这个教程: http : //blog.upubly.com/2011/01/06/using-sunspot-in-your-views/我觉得这样做我想要的。 我试图让这个工作,但是,即使我试图让它只用一个方面工作,我没有列出任何结果。 只是小平面的名称,然后没有别的。 思考? 谢谢!! UPDATE 以下是我要做的代码示例: 调整Railscasts代码我得到了这个: 在我的StylesController中: def index @search = Style.search do fulltext params[:search] facet :departmental, :seasonal, :classifier with(:departmental, params[:department]) if params[:department].present? with(:classifier, params[:classification]) if params[:classification].present? with(:seasonal, params[:season]) if params[:season].present? end 在我的样式索引视图中(我知道我需要浓缩这个) = form_tag styles_path, :method => […]