【问题标题】:Sunspot returning empty results太阳黑子返回空结果
【发布时间】: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


【解决方案1】:

我会尝试删除控制器中的 ::App 子类。我的猜测是它弄乱了关于表 类命名约定的太阳黑子或 activerecords 推理机制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2013-08-30
    • 1970-01-01
    相关资源
    最近更新 更多