首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加/减去facets rails

添加/减去facets rails
EN

Stack Overflow用户
提问于 2013-06-28 08:03:52
回答 1查看 239关注 0票数 1

大家好,我是一个使用sunspot和solr的新rails开发人员。

这是我的可搜索区块:

代码语言:javascript
复制
searchable do
  text :name, :boost => 10
  text :description
  text :tags do
    tags.map(&:name)
  end
  text :ingredients do
    ingredients.map(&:ingredient)
  end
  string :ingredients, :multiple => true do 
    ingredients.map(&:ingredient)
  end
  string :user
end

和我的控制器:

代码语言:javascript
复制
@search = Recipe.search do |query|
  query.fulltext params[:search]
  query.paginate(:page => params[:page] || 1, :per_page => 20)
end
@recipes = @search.results

我正在构建一个食谱搜索引擎。基本上,现在我有了它,这样您就可以搜索食谱的名称、配料和与食谱相关联的标签,并显示匹配的食谱。

但正如你所看到的,我也在尝试创建一个关于配料的分面搜索,我已经做了字符串。

我的目标是能够搜索食谱,就像你现在可以做的那样,但是如果你添加了一个加号,后面跟着一个配料,那么它就会在搜索过程中出现,减号也是如此。举个例子,下面是一个查询:

代码语言:javascript
复制
Chicken Piccata +lemon  => searches for chicken piccata with lemon
Chicken Piccata -lemon  => searches for chicken piccata without lemon

我一直在尝试这样的东西:

代码语言:javascript
复制
with(:ingredients, params[:ingredients]) if params[:ingredients].present?

但我不知道如何处理它的+/-方面。我怎么才能做到这一点呢?

感谢大家的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-28 18:32:38

然而,不确定是否创建太阳黑子查询....

Solr支持布尔运算符,因此支持NOT (-),它将返回不包含该单词的结果。

因此,使用缺省运算符AND的Chicken Piccata lemon ->应该返回所有结果

此外,Solr支持NOT运算符,因此Chicken Piccata -lemon,将被解释为内容中没有lemon的所有结果。

您还可以查询-ingredients:lemon以排除结果。

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

https://stackoverflow.com/questions/17355210

复制
相关文章

相似问题

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