Rails Sunspot Solr any_of,带有标量字段和全文搜索

时间:2015-01-15 13:24:53

标签: ruby-on-rails solr sunspot sunspot-rails sunspot-solr

我正在使用带有太阳黑子solr的rails 4.0。我希望这样做:

  

(read_flag为TRUE)或((read_flag IS NIL)AND(全文   params [:search]是真的))

这是(post.rb)中的代码:

@search =  Post.search do
  any_of
     with :model_id,params[:model_id]
     all_of
        with :model_id, nil
        fulltext params[:search] do
          fields(:title,:tags)
        end
     end
  end

end

但是,上面的代码会生成此错误 undefined method 'fulltext' for #<Sunspot::DSL::Scope:0x007ff641ef2f38>

所以我尝试将all_of更改为all。但它没有回归我想要的东西。

模型文件(post.rb)按照以下

编制索引
  searchable do
    integer :user_id
    text :title, :boost => 2
    integer :model_id
  end  

有人可以建议我应该如何构建我的查询?无法在stackoverflow上找到任何相关问题。

1 个答案:

答案 0 :(得分:0)

我确定您很可能已经走了很久,所以对于可能发现此问题的任何人来说,我都在努力使用any_of和全文搜索。我发现在全文似乎起作用之前结束了合取/析取:

@search =  Post.search do
  any_of
     with :model_id,params[:model_id]
     all_of
        with :model_id, nil
     end
  end
  fulltext params[:search] do
     fields(:title,:tags)
  end

end