2016-05-07 18 views
0

私は150M文書を保持する大きなSolrを持っていると言います。 私はまた、各ユーザーが彼が保存した文書を持っている10万人のユーザーを持っています。 私の質問:私はモンゴやMySQL内のIDを保存することを決定した場合は、許可するための最良の方法は何であるそれらの文書IDが(各ユーザーが保存されたドキュメント) Solrの特定のIDで検索

  • を格納するための最良の方法は何

    1. ユーザーは自分のドキュメントの検索を実行します。つまり、Mongo/MySQLにはIdだけを格納しますが、実際の情報はSolrにあります。

    ありがとうございます。

  • 答えて

    0

    索引付けされている各文書にフィールドusername_sを追加できます。このフィールドには、ドキュメントにアクセスできるユーザ名が含まれます。このドキュメントに多くの人がアクセスできるようにするには、一連のユーザーを使用することもできます。

    次に、バックエンドで& fq = username_s:Userを追加できます。たとえ1億件の文書が索引付けされていても、そのユーザーに属するもののみが表示されます。

    /core/select?q=*.*&fq=username_s:<User> 
    

    あなたは、同じコア内のすべてのユーザーのすべてのドキュメントを格納する空白のフィールド「ID」を残し、unqiue IDが自動的にSolrによって自動的に生成される可能性があります。

    +0

    このソリューションは大規模では機能しませんが、各ドキュメントには10​​00人のユーザーがアクセスできます。どのようにusername_sに多くのuser_idsを格納できますか? –

    +0

    なぜこのフィールドに非常に多くのユーザー名を保存したいですか?誰もがこの文書にアクセスできるようにするには、&fq = username_sパラメーターを省略するか、特定のユーザーに対してグループ・フィールドを定義することができます。ユーザーが追加したドキュメントからIDをログに記録するには、独自のインデックスパイプラインスクリプトで行う必要があります。各文書には独自のIDがあります。ドキュメントのIDをMySQLデータベースに記録し、それを作成したユーザー(Webインターフェイスなど)に表示することができます。 – user3606329

    関連する問題