【发布时间】:2013-02-22 08:27:51
【问题描述】:
我目前正在使用 Lucene。我的要求就像 facebook 搜索框。用户搜索人和朋友。但在我的要求中,用户的姓名、位置、电子邮件地址等隐私设置对所有人或只有朋友可见。他可以向朋友和社区的其他成员显示和隐藏这些字段。
我已经实现了基于姓名、位置和电子邮件地址的简单搜索。但现在我正在根据隐私设置修改搜索。
这是我的场景..
用户 A 有隐私设置:
名字只显示给朋友
电子邮件显示给每个人
位置不显示给任何人。
如果 User X 在搜索框中输入 User A 的位置,那么它不应该出现在结果中。但是,如果用户 X 在搜索框中键入 用户 A 的名称,则应该显示它,因为 用户 A 没有限制名称,并且在隐私设置中对他的朋友可见.
请您指导我的方法。
如果我没有清楚地写下我的要求,请告诉我。
我分析了以下方法,
1- IndexSearcher 的解释方法(会影响整体性能)
2-探索过滤器
却得不到太多
我的方法:
根据名称获取resultSet
根据位置获取resultSet
根据邮箱地址获取resultSet
在每 3 个结果集上循环并应用与隐私设置相关的条件,并根据隐私设置排除项目。最后合并所有 3 个结果集。
还有其他方法吗?请与我分享。谢谢。
【问题讨论】:
-
我也分析了荧光笔的工作原理。但它只检查文本。
标签: grails grails-2.0 lucene compass-lucene