繁体   English   中英

Grails Searchable Plugin - 过滤结果集

[英]Grails Searchable Plugin - Filtering Result Set

我目前正在使用Lucene。 我的要求就像facebook搜索框。 用户搜索人和朋友。 但在我的要求中,用户有隐私设置,如姓名,位置,电子邮件地址,每个人或只有朋友可见。 他可以向朋友和社区的其他成员展示和隐藏这些字段。

我已根据姓名,位置和电子邮件地址实施了简单搜索。 但现在我在隐私设置的基础上修改搜索。

这是我的情景 ..

用户A具有隐私设置:
姓名仅向朋友显示
每个人都会看到电子邮件
位置不会显示给任何人。

如果用户X在搜索框中键入用户A的位置,则它不应该在结果中。 但是,如果用户X在搜索框中键入用户A的名称,则应显示该用户,因为用户A没有限制名称,并且在隐私设置中他的朋友可以看到它。

你能指导我一下这个方法吗?

如果我没有明确写出我的要求,请告诉我。

我分析了以下方法,
1- IndexSearcher的解释方法(将达到整体性能)
2-探索过滤器但是得不到多少

我的方法:

根据名称获取resultSet
根据位置获取resultSet
在电子邮件地址的基础上获取resultSet

循环每个3结果集并应用与隐私设置相关的条件,并根据隐私设置排除项目。 并最终合并所有3个结果集。

如果还有其他办法吗? 请与我分享。 谢谢。

也许你可以在可搜索的插件中使用lucene查询语法来根据需要创建lucene Query。

你可以在这里这里找到

您可以通过覆盖默认属性设置来限制搜索。 你只需要像这样申请......

class A {
      String x
      String y
      String z

    static searchable = [only: ['x', 'y']] 
    // …
}

使用此功能可以限制可搜索的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM