gpt4 book ai didi

mysql - 思考狮身人面像或条件

转载 作者:行者123 更新时间:2023-11-29 12:51:50 26 4
gpt4 key购买 nike

在思考 sphinx 时如何使用条件或

情况是:我有一个带有 sender_id 和recipient_id 属性的 Message 模型。我想编写这个查询:

  Message.where("sender_id = ? OR recipient_id = ?", business_id, business_id)

现在,我正在搜索两次,一次搜索包含recipient_id =business_id的所有邮件,另一次搜索返回包含sender_id=business_id的所有邮件。然后我将它们合并。

我觉得有一种更有效的方法来做到这一点。

编辑 - 添加索引文件

ThinkingSphinx::Index.define :message, with: :active_record, delta: ThinkingSphinx::Deltas::DelayedDelta do
# fields
indexes body

# attributes
has job_id
has sender_id
has recipient_id

end

最佳答案

Sphinx 不允许属性之间使用 OR 逻辑,只允许字段之间使用 OR 逻辑。但是,解决方法是将两列合并为第三个属性:

has [sender_id, recipient_id], :as => :business_ids, :multi => true

然后您可以像这样搜索组合值:

Message.search :with => {:business_ids => business_id}

关于mysql - 思考狮身人面像或条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24604210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com