Tag: 搜索

在构建全局自动完成搜索时,如何在搜索栏中修复未定义的方法`form_with’?

尝试在我的rails应用程序中跨多个模型运行全局自动完成搜索并利用easy-autocomplete jquery库以及用于搜索的ransack gem时,我收到一个奇怪的错误。 具体来说,我相信错误发生在我的导航栏页面中,当我尝试undefined method form_with for #<#:0x007f87600e0aa8>运行查询undefined method form_with for #<#:0x007f87600e0aa8>时出现此错误undefined method form_with for #<#:0x007f87600e0aa8> 我决定破解并切换form_tag的form_with然后我在undefined method text_field for nil:NilClass”下面的行上得到一个错误undefined method text_field for nil:NilClass”我已经在下面列出了我所有的相关代码。非常感谢你的任何帮助。 Main_Controller.rb class MainController < ApplicationController def index end def search @movies = Movie.ransack(name_cont: params[:q]).result(distinct: true) @directors = Director.ransack(name_cont: params[:q]).result(distinct: true) respond_to do |format| format.html {} format.json { @movies = @movies.limit(5) […]

Elasticsearch – 具有多匹配的范围filter?

我正在使用弹性搜索来过滤服装: def self.search(query) __elasticsearch__.search( { query: { function_score: { query: { multi_match: { query: query, fields: [‘description^30′,’material^10’] }, }, field_value_factor: { field: “purchased” }, } } } ) 结束 问题是我似乎无法按照这样购买它们的次数来过滤它们: range: { purchased: { gte: 1000 } } 无论我把它放在哪里,都会给我以下错误: [400] {“error”:{“root_cause”:[{“type”:”parsing_exception”,”reason”:”[range] malformed query, expected [END_OBJECT] but found [FIELD_NAME]”,”line”:1,”col”:88}],”type”:”parsing_exception”,”reason”:”[range] malformed query, expected [END_OBJECT] but found [FIELD_NAME]”,”line”:1,”col”:88},”status”:400} […]

Rails没有在搜索表单上传递DB Query

这看起来更好看,这是日志,它传递了参数,但它没有传递带有该参数的查询 Started GET “/items?utf8=%E2%9C%93&search=blanca” for 65.34.251.106 at 2016-08-30 03:55:51 +0000 Processing by ItemsController#index as HTML Parameters: {“utf8″=>”✓”, “search”=>”blanca”} User Load (0.3ms) SELECT “users”.* FROM “users” WHERE “users”.”id” = ? ORDER BY “users”.”id” ASC LIMIT 1 [[“id”, 3]] Item Load (0.3ms) SELECT “items”.* FROM “items” LIMIT 50 OFFSET 0 Item Load (0.2ms) SELECT “items”.* FROM “items” […]

使用OR和AND搜索多个列以应用filter

我正在开发一款应用。 我试图植入一个搜索系统。 方法很简单。 在家里,我在3栏“name”或“nomdep”或“nomregion”上搜索查询。 在此之后,我想用AND运算符用params过滤。 如果我只使用一列植入搜索,例如“NAME”,那么我可以应用filter。 但如果我想用多个OR植入这个,我不能应用filter。 我认为OR运算符是问题所在。 但我肯定不知道要解决这个问题…… 你能帮助我吗 ? 谢谢 camping.rb has_many :caracteristiquetests, :foreign_key => :camping_id has_many :situations, :foreign_key => :camping_id def self.searchi(query, handicap, animaux, television, plage, etang, lac) return scoped unless query.present? left_outer_joins(:caracteristiquetests, :situations).where([‘nomdep LIKE ? OR name LIKE ? OR nomregion LIKE ? AND handicap LIKE ? AND animaux LIKE ? […]

忽略搜索中的大写,小写和重音

我这里有一个带filter的搜索系统。 这个系统就像魅力一样,但我有一些问题,包括羽毛/大写和重音。 例如,如果我搜索“marée”我有结果,但如果我搜索“MAREE”或“Marée”或“maree”。 我没有结果。 我想解决这个问题。 我怎么解决这个问题? 谢谢。 我的控制器 def resultnohome if params[:query].blank? redirect_to action: :index and return else @campings = Camping.searchi(params[:query], params[:handicap], params[:animaux], params[:television], params[:plage], params[:etang], params[:lac]) if params[:query] == “aube” @pub = Camping.find_by_id(1) else end end end 我的模特 def self.searchi(query, handicap, animaux, television, plage, etang, lac) return scoped unless query.present? result = left_outer_joins(:caracteristiquetests, :situations).where(‘nomdep […]

Rails查找某些参数何时为空白

我有一个包含两个字段的搜索表单:x,y 执行搜索时,它将查找符合所有条件的记录。 但是,将两个条件中的任何一个都设置为“全部”,将其留空。 如果设置为all,我应该将params [:x]和params [:y]设置为什么。 params[:x] = ? unless params[:x] params[:y] = ? unless params[:y] users = User.where([“x = ? AND y = ?”, params[:x], params[:y]])

Rails:如何将facet与搜索结果一起使用

我有一个导轨应用程序,我正在寻找维修店。 搜索类方法如下所示: def self.search(params) if params repairshop = Repairshop.where(:approved => true) if params[:radius].present? repairshop = repairshop.near(params[:location], params[:radius]) if params[:location].present? else repairshop = repairshop.near(params[:location], 200) if params[:location].present? end if params[:keywords].present? repairshop = repairshop.joins(:specializations).joins(:brands_we_services).where(“LOWER(specializations.title) LIKE ? OR LOWER(brands_we_services.title) LIKE ? OR LOWER(repairshop.title) LIKE ?”, “%#{params[:keywords].downcase}%”, “%#{params[:keywords].downcase}%”, “%#{params[:keywords].downcase}%”) end repairshop.uniq else all end end 维修店可以有许多专业和品牌_we_services。 因此,从其他参数中搜索所有名称非常重要。 搜索表单如下所示: 一切正常。 […]

我错过了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 […]

使用pg_search搜索多个模型

我正在尝试在我的rails应用程序中实现全文搜索。 我使用PostgreSQL作为数据库,因此,使用PostgreSQL的全文搜索function。 我有两个模型用户和记分板,我想在两个模型中搜索特定列以提取记录。 我正在使用pg_search gem进行全文搜索,我阅读了多元文档并成功实现了所有内容。 我创建了pg_search_documents表。 代码如下。 记分牌模型 include PgSearch multisearchable :against => [:name_of_organization, :name_of_activity, :name_of_scoreboard] 用户模型 include PgSearch multisearchable :against => :name 控制器代码 def index @pg_search_documents = PgSearch.multisearch(params[:search]) end 当我在视图中运行代码时,搜索工作正常。 当搜索每个用户和记分板OBJECTS时,它将返回它们。 查看代码 但是,当我尝试运行上面给出的视图代码并搜索名称时,我将收到以下错误, undefined method `name_of_scoreboard’ for #. 当我尝试搜索name_of_scoreboard时,我收到类似的错误, `undefined method `name’ for #.` 如果我在我的视图中使用以下代码, , 显示用户和记分板的ID。 这意味着我只能搜索两个模型中常见的列。 如果我尝试搜索两个不同的列,例如name和name_of_scoreboard ,我会得到上面提到的两个错误。 我可以在两个不同的模型之间进行搜索,但是我无法从视图中显示结果。 我不确定我做错了什么,或者我错过了一些重要的事情。 我真的不确定。 我试图保持简短并试图包含相关信息。 […]

Ransack存储在db中的搜索字符串数组

我正在尝试使用ransack搜索文章。 在我的一个问题是如何根据标签获取文章,我发现了如何做到这一点: 找到数组的文章 现在我只想用搜索进行搜索,但是我收到了一个错误 我喜欢这个 执行此搜索xbox时出现的错误如下: PG::InvalidTextRepresentation: ERROR: array value must start with “{” or dimension information LINE 1: …es”.* FROM “articles” WHERE “articles”.”tags” IN (‘xbox’) O… inheritance人控制器: def index @q = Article.ransack(params[:q]) @articles = @q.result.paginate(page: params[:page], :per_page => 10).order(‘created_at DESC’) end 如何使用标签搜索文章? 谢谢!