IndexTank自动完成功能无法在Rails 3中使用Tanker gem

时间:2012-04-09 19:05:52

标签: ruby-on-rails-3 autocomplete indextank

我无法在我的Rails应用程序中使用Indextank的自动完成功能。我正在使用searchify来托管我的索引和Tanker gem来创建我的索引(https://github.com/kidpollo/tanker)。我已经按照这里的指南(http://www.searchify.com/documentation/tutorial-autocomplete)和这里(https://github.com/flaptor/indextank-jquery/)来使它工作,但我没有得到任何结果背部。我在searchify仪表板中启用了公共API。

我认为问题与Tanker gem对数据的索引方式有关(它可以在一个索引中索引多个模型)。这里报告了同样的问题 - https://github.com/kidpollo/tanker/issues/25 - 但我对所给出的解决方案感到困惑。我不确定是什么意思:indices => :此实例中的文本。任何人都可以对我需要做的事情有所了解吗?

这是我索引数据的模型。没有其他模型索引数据

class Post < ActiveRecord::Base
  include Tanker

  # Relationships
  belongs_to :user
  has_many :comments

  tankit index do
    indexes :title
    indexes :description
    indexes :post_comments do
      comments.map {|comment| comment.description }
    end
  end

  # define the callbacks to update or delete the index upon saving and deleting records
  after_save :update_tank_indexes
  after_destroy :delete_tank_indexes
end

这是我用来测试自动完成的代码。我也尝试使用https://github.com/flaptor/indextank-jquery/

中的示例
<script src='https://raw.github.com/flaptor/indextank-jquery/master/jquery.indextank.ize.js' type='text/javascript'></script>
<script src='https://raw.github.com/flaptor/indextank-jquery/master/jquery.indextank.autocomplete.js' type='text/javascript'></script>

<script type='text/javascript'> 
  var publicApiUrl = "myPublicURL";
  var indexName = "myIndexName";
</script> 

<script type='text/javascript'>
  $(document).ready(function(){
      // let the form be 'indextank-aware'
      $("#myform").indextank_Ize(publicApiUrl, indexName);
      // let the query box have autocomplete
      $("#query").indextank_Autocomplete();
  });
</script>

<%= form_tag 'posts/search', :method => :get, :id => 'myForm' do %>
  <%= text_field_tag :query, "", :id => 'query' %>
  <button type="submit">Search</button>
<% end %>

1 个答案:

答案 0 :(得分:0)

来自Searchify的嘿克里斯。我对Tanker宝石太熟悉了。但默认情况下,Searchify / IndexTank会在名为“text”的文档字段中搜索,包括自动填充建议。因此,请尝试在“文本”字段中为数据(标题,说明或post_comments)编制索引。如果您仍有问题,请通过网站或我们的支持电子邮件与我联系,我可以查看您的索引,了解您(和油轮)如何编制索引。