首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sunspot / solr复合查询

Sunspot / solr复合查询
EN

Stack Overflow用户
提问于 2014-02-12 01:54:23
回答 1查看 265关注 0票数 2

假设我有一些想要搜索的产品。

我想找的产品是在一些最小和/或最大值,如长度,宽度和高度。

我可以这样做:

代码语言:javascript
复制
any_of do

  with(:length).greater_than_or_equal_to(length_min)
  with(:length).less_than_or_equal_to(length_max)

  with(:width).greater_than_or_equal_to(width_min)
  with(:width).less_than_or_equal_to(width_min)

  with(:height).greater_than_or_equal_to(height_min)
  with(:height).less_than_or_equal_to(height_min)
end

这将给我的产品,以匹配其中的任何一个。

我希望返回所有产品,但按符合最多标准的产品排序。

举个例子:

在所有长度、宽度和高度范围内的产品A首先是,然后是仅匹配长度和宽度的产品C,然后是不匹配任何长度、宽度和高度范围的产品B。

有人知道怎么做吗?

谢谢你,瑞克

EN

回答 1

Stack Overflow用户

发布于 2014-02-12 02:32:19

查看https://github.com/sunspot/sunspot上的文档,似乎通过使用any_of do,只要有任何项匹配任何条件,就会返回结果。

代码语言:javascript
复制
# Posts that do not have an expired time or have not yet expired
Post.search do
  any_of do
    with(:expired_at).greater_than(Time.now)
    with(:expired_at, nil)
  end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21709406

复制
相关文章

相似问题

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