首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在特定索引上搜索

无法在特定索引上搜索
EN

Stack Overflow用户
提问于 2011-02-15 20:04:36
回答 1查看 1K关注 0票数 0

型号:

代码语言:javascript
复制
class TechRequest < ActiveRecord::Base
...
  define_index do
  ...
    indexes  :hot_request
    indexes :status_id, :as => :current_status_id
  ...
    has :hot_request , :as => :hot_request
    set_property :delta => true
  end

数据库:

代码语言:javascript
复制
hot_request - tinyint(1)

当我执行控制器代码时-

代码语言:javascript
复制
@query_string = '(@hot_request 1)(@current_status_id 1 | 2 | 3)'
@tech_requests = TechRequest.search @query_string, :match_mode => :extended

将抛出以下错误:

代码语言:javascript
复制
ThinkingSphinx::SphinxError: index tech_request_core,tech_request_delta: query error: no field 'tech_hot_request' found in schema
        from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb:392:in 'populate'
        from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb:508:in 'call'
        from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb:508:in 'retry_on_stale_index'
        from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb:379:in 'populate'
        from D:/Current/TechAssistTest/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/search.rb:167:in 'method_missing'
        from D:/ruby/lib/ruby/1.8/irb.rb:302:in 'output_value'
        from D:/ruby/lib/ruby/1.8/irb.rb:151:in 'eval_input'
        from D:/ruby/lib/ruby/1.8/irb.rb:263:in 'signal_status'
        from D:/ruby/lib/ruby/1.8/irb.rb:147:in 'eval_input'
        from D:/ruby/lib/ruby/1.8/irb.rb:146:in 'eval_input'
        from D:/ruby/lib/ruby/1.8/irb.rb:70:in 'start'
        from D:/ruby/lib/ruby/1.8/irb.rb:69:in 'catch'
        from D:/ruby/lib/ruby/1.8/irb.rb:69:in 'start'
        from D:/ruby/bin/irb:13

当我使用hot_request作为属性时,搜索效果很好。当我使用@query_string = '(@current_status_id 1 | 2 | 3)'时,搜索也运行得很好。

EN

回答 1

Stack Overflow用户

发布于 2011-04-27 23:55:08

我刚刚遇到了类似的问题-有两个可能的原因,为什么这个错误,我可以看到。首先,根据http://sphinxsearch.com/forum/view.html?id=2103,您可以将SQL列用作字段或属性,但不能同时使用两者(无需克隆它)。另一个让我困惑了一段时间的方法是,您可能需要指定类型-因此,如果hot_request实际上是一个整数,您可能需要类似于

索引hot_request :as => hr,:类型=> :integer

否则你就会得到一个隐秘的错误信息

希望这对某些人有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5003409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档