【问题标题】:How to add conditions to thinking-sphinx search?如何为thinking-sphinx搜索添加条件?
【发布时间】:2010-01-15 18:49:22
【问题描述】:

我最近在我的 ruby​​ on rails 应用程序上安装了 thinking-sphinx。乍一看,一切都很好,我可以搜索单词,它会找到它们。现在,当我尝试使用以下方式添加一些过滤器(例如,省份、类别等)时:

MyModel.search 'hello' :conditions => 'category_id=1' 例如,它会抛出以下异常:

搜索错误(状态:1):无效或 截断请求

我一直在阅读有关thinking-sphinx 插件的一些文档,我想我必须做一些除了这个语法之外的事情。

总结一下:到目前为止,我只是安装了windows服务,然后我在一个模型中定义了一个索引,然后我尝试搜索。同样,我在无条件搜索时成功,但在搜索时失败。

任何帮助将不胜感激。

谢谢, 布赖恩

【问题讨论】:

    标签: ruby-on-rails ruby sphinx thinking-sphinx


    【解决方案1】:

    假设你的模型has category_id:

    MyModel.search 'hello', :with => {:category_id => 1}
    

    :conditions 用于全文搜索特定属性,:with 用于过滤搜索结果。

    更多信息在这里:http://freelancing-gods.com/posts/a_concise_guide_to_using_thinking_sphinx

    【讨论】:

    • 好吧。实际上我正在研究 Announcement 模型,我有以下内容:acts_as_taggable_on :tags,:category 如果我想在搜索标签中添加条件,我应该在 Announcement 的索引中包含什么?
    • 另外,你一定知道我没有任何Tag模型。我只是简单地拥有 db 表和acts_as_taggable_on 插件,正如我在之前的评论中所说的那样,我在 Announcement 模型中使用它们。
    • 这不是一个简单的问题,试试“concat(select tags.value where my_model_id = my_models.id)”或类似的。您可以传递任意 SQL,我的建议是查看 sphinx.conf 文件中生成的 SQL 并对其进行逆向工程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多