「メッセージ」と「メンバーシップ」ドキュメントで構成される Cloudant を使用してメッセージング システムを構築しています。
メッセージ文書:
{"_id":"1","type"="message","group":"a","text":"this is message 1"},
{"_id":"2","type"="message","group":"a","text":"this is message 2"},
{"_id":"3","type"="message","group":"b","text":"this is message 3"},
...
メンバーシップ文書:
{"_id":"a","type"="membership","user":"joe","group":"a"},
{"_id":"b","type"="membership","user":"bob","group":"a"},
{"_id":"c","type"="membership","user":"bob","group":"b"},
...
各メッセージは 1 つのグループに関連付けられています。ユーザーは、何百もの異なるグループのメンバーシップを持つ場合があります。
特定のユーザーに代わって、メッセージ テキストの全文検索を実行したいと考えています。アプリケーションでは、ユーザーがメンバーではないグループからのメッセージを表示してはならない必要があります。
特定のユーザーが属するグループからのメッセージのみを返す全文検索を行うにはどうすればよいですか?