Grails Searchable Plugin - 过滤结果集

Uma*_*eem 5 lucene grails compass-lucene grails-2.0

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

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

这是我的情景 ..

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

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

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

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

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

我的方法:

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

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

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

san*_*vi7 1

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

\n\n

你可以在这里这里找到

\n\n

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

\n\n
class A {\n      String x\n      String y\n      String z\n\n    static searchable = [only: [\'x\', \'y\']] \n    // \xe2\x80\xa6\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用它您可以限制可搜索的属性。

\n