我目前正在使用 Lucene。我的要求就像 facebook 搜索框。用户搜索人和朋友。但在我的要求中,用户有隐私设置,如姓名、位置、电子邮件地址对所有人或只有朋友可见。他可以向朋友和社区的其他成员显示和隐藏这些字段。
我已经实现了基于姓名、位置和电子邮件地址的简单搜索。但现在我正在根据隐私设置修改搜索。
这是我的场景..
用户 A有隐私设置:
姓名只显示给朋友
电子邮件显示给每个人
位置不显示给任何人。
如果用户 X在搜索框中键入用户 A的位置,那么它不应该出现在结果中。但是如果用户 X 在搜索框中输入用户 A的名称,则应该显示它,因为用户 A没有限制名称,并且在隐私设置中对他的朋友可见。
你能指导我的方法吗?
如果我没有清楚地写下我的要求,请告诉我。
我分析了以下方法,
1- IndexSearcher 的解释方法(它会影响整体性能)
2- 探索过滤器但不能得到太多
我的方法:
根据名称
获取结果集 根据位置
获取结果集 根据电子邮件地址获取结果集
循环每 3 个结果集并应用与隐私设置相关的条件,并根据隐私设置排除项目。最后合并所有 3 个结果集。
如果有其他方法吗?请与我分享。谢谢。