簡體   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