Tag: 轮胎

Config Tire与Bonsai ElasticSearch Heroku附加组件一起使用

所以我有一个rails 3.2 app。 我创建了一个索引。 我按照本指南: https ://gist.github.com/nz/2041121在config/initializers/bonsai.rb创建一个bonsai.rb文件它看起来像这样: ENV[‘ELASTICSEARCH_URL’] = ENV[‘BONSAI_URL’] # Optional, but recommended: use a single index per application per environment. # Caveat: This convention not be entirely supported throughout Tire’s API. app_name = Rails.application.class.parent_name.underscore.dasherize app_env = Rails.env INDEX_NAME = “#{app_name}-#{app_env}” 但是我的工作,这个来自heroku日志的外包: 2013-03-06T17:04:54+00:00 app[web.1]: Processing by SchoolsController#index as HTML 2013-03-06T17:04:54+00:00 app[web.1]: Started GET “/trafikskola?utf8=%E2%9C%93&query=Malm%C3%B6” […]

如何使用elasticsearch进行排序?

我正在尝试制作排序desc和asc 。 我正在使用rails,tire gem和elasticsearch。 我试图弄清楚我可以在URL中发送什么类型的参数 所以我在搜索块中定义它正在对结果desc顺序进行排序。 sort { by :price, “desc”} 当用户在: new-york中搜索公寓时,结果是排序顺序。 搜索查询/ URL如下所示: http://localhost:3000/apartmens?utf8&query=newyork 为什么我不能在url中添加sort-params,如下所示: http://localhost:3000/apartmens?utf8&query=newyork&sort=asc

ElasticSearch with Tire不包括带STI模型的自定义分析器

我有一个STI模型,我希望可以使用ElasticSearch和Tire进行搜索。 我遇到的问题是当Tire创建映射时,似乎忽略了我的第二个模型的自定义分析器。 以下是我的模型示例。 class Account { :analyzer => { “custom_search_analyzer” => { “tokenizer” => “keyword”, “filter” => “lowercase” }, “custom_index_analyzer” => { “tokenizer” => “keyword”, “filter” => [“lowercase”,”substring”] } }, :filter => { :substring => { “type” => “nGram”, “min_gram” => 1, “max_gram” => 20 } } } do mapping do indexes :id, :type => […]

多个Elasticsearch索引

我在同一个Ubuntu服务器上有一个Rails 3应用程序的暂存和生产实例(使用轮胎gem)。 似乎这两个实例都共享相同的弹性搜索索引,这显然不是我想要的。 如何让我的生产和登台实例使用单独的实例?

ElasticSearch和Tire:如何使用html_strip

我想在我的Rails项目中添加char_filter html_strip 。 但我不知道如何以及在哪里使用(重新)轮胎gem。 我甚至不确定我这样做的可能性。 我的代码: include Tire::Model::Search include Tire::Model::Callbacks mapping do indexes :author, type: ‘string’ indexes :content, type: ‘string’, index_options: “offsets”, analyzer: ‘snowball’, language: “French”, char_filter: ‘html_strip’ indexes :name, type: ‘string’, index_options: “offsets”, analyzer: ‘snowball’, language: “French”, :boost => 5 indexes :topic_id, type: :integer, :index => :not_analyzed end def self.search params query = params[:query] […]

不在映射中的字段包含在ElasticSearch返回的搜索结果中

我想使用Tire gem作为ElasticSearch的客户端索引pdf附件。 在我的映射中,我从_source中排除了附件字段,因此附件不会存储在索引中,也不会在搜索结果中返回 : mapping :_source => { :excludes => [‘attachment_original’] } do indexes :id, :type => ‘integer’ indexes :folder_id, :type => ‘integer’ indexes :attachment_file_name indexes :attachment_updated_at, :type => ‘date’ indexes :attachment_original, :type => ‘attachment’ end 运行以下curl命令时,我仍然可以看到搜索结果中包含的附件​​内容: curl -X POST “http://localhost:9200/user_files/user_file/_search?pretty=true” -d ‘{ “query”: { “query_string”: { “query”: “rspec” } } }’ 我在这个主题中发布了我的问题: 但我刚刚注意到,不仅附件包含在搜索结果中,而且所有其他字段(包括未映射的字段)也包括在内,您可以在此处看到: { […]

新的elasticsearch-rubygem与铁轨融为一体

有什么方法可以将新的Elasticsearchgem用于ruby到轨道,轮胎很棒但是从两个月开始退役并且被新gem取代,但是,还没有与轨道集成function。 所有教程都使用轮胎,但现在,我们如何使用Elasticsearch的rails?

找不到uri 和方法的处理程序

嗨,我正在使用ruby-2.4.0和rails 5进行RoR项目。我正在使用elasticsearch在我的应用程序中进行搜索。 我有一个模型venue_details如下: – class VenueDetail :not_analyzed indexes :venue_name, :type => ‘string’, :index => :analyzed end end def self.search(params) if params[:query].present? tire.search(load: true) do query { string “*#{params[:query]}*”, default_operator: “AND” } size 100 end else tire.search(load: true) do query { string “*#{params[:term]}*”, default_operator: “AND”} size 100 end end end end 我正在使用elasticsearch-5.1.2。 我试图用命令rake environment tire:import CLASS=VenueDetail […]

在生产中更新ElasticSearch映射(轮胎)

我想清楚地了解如何处理以下场景: 我正在从activerecord模型添加或删除属性,所以我想在生产中更新其在ElasticSearch中的映射。 根据我的理解,我应该…… 1-创建一个新索引并从mysql导入所有内容 这是正确的命令吗? rake environment tire:import CLASS=’Bow’ INDEX=’new-bows’为了创建正确的映射,我应该已经在模型中更新了我的映射,对吧? 2-删除旧映射并为new-bows创建一个名为bows的别名 我会那样做,这是正确的吗? old_index_name = Bow.tire.index.name Bow.tire.index.delete alias = Tire::Alias.new alias.name(old_index_name) alias.index(‘new-bows’) alias.save 3-重启app 我错过了什么,或者是否有更简单的方法来实现我想要的轮胎使用? 我应该在什么时候删除旧索引? 在创建具有相同名称的别名之前,还是可以在之后执行此操作?

通过Elasticsearch / Tire的时间表查找开放式商店

我有模型Shop每个都与Timetable有关系,可能包含以下内容: shop_id: 1, day: 5, open_hour: 7, open_minutes: 0, close_hour: 13, close_minute: 30 shop_id: 1, day: 5, open_hour: 14, open_minutes: 30, close_hour: 18, close_minute: 00 当然, Timetable可以有更优雅的格式,但问题是下一个:如何使用elasticsearch(轮胎)我可以找到开放的商店吗? 所有的想法都会被贬低! 谢谢! 找到解决方案 为每一天创建单独的索引(星期日,星期一,…) 每天从Timetable构建完整的分钟数: ((open_hour * 60 + open_minute)..(close_hour * 60 + close_minute)).to_a 添加filter进行搜索: filter :term, current_day_name => (current_hour * 60 + current_minutes) 这个解决方案同样有效,但看起来很麻烦,因为如果Shop每天工作8小时,我创建了大小为8 * 60 = […]