【发布时间】:2023-04-02 20:02:01
【问题描述】:
我正在使用 Sunspot 进行搜索,但我的查询没有返回任何结果。我正在使用 API 进行搜索。
以下是一些相关代码:
class App < ActiveRecord::Base
searchable do
text :name, :boost => 5
text :description
end
end
控制器:
module Api
module V1
class AppsController < ApiBaseController
respond_to :json
class App < ::App
end
def index
@search = App.search do
fulltext params[:search]
end
@apps = @search.results
respond_with @apps
end
end
end
end
我通常在不搜索的情况下访问 AppsController 中的 index 方法的 URL 是http://0.0.0.0:3000/api/apps
尝试搜索时,我使用http://0.0.0.0:3000/api/apps?search=test
我的搜索 URL 正确还是应该是 http://0.0.0.0:3000/api/apps?name=test
我尝试了许多不同的 URL 格式,即使我的数据库中有数据,它们都返回空结果。我也重新索引了很多次,它显示有 6 个项目被索引,这是正确的。关于发生了什么的任何想法?
编辑:在不使用 api 从 web 应用程序搜索时它工作正常。从 API url 调用时它只是返回空
【问题讨论】:
-
你在控制器中使用
::App的子类吗? -
如果我想在 API 请求中添加一些与实际模型不同的数据
-
我现在应该把它注释掉
-
我实际上只是在我的控制器中删除了 ::App 代码并且它起作用了!如果你想把它变成答案,我会接受它
标签: ruby-on-rails sunspot sunspot-rails sunspot-solr