0

私はsolrの初心者です。だから我慢してください。

ユースケース

  • ユーザーは自分の写真を友人と共有したり、公開したり、非公開にしたりできます。
  • ユーザーは人物または写真を検索できます (自分と共有されている公開写真のみを表示する必要があります)。

リレーショナル データを solr スキーマに非正規化しました。ユーザーオブジェクトと写真オブジェクトをsolrスキーマにマージしました スキーマ

そう、

  • ユーザー jack (ユーザー 3) が「ピクニック」を検索している場合、photo_1 は表示されず、photo_2 が表示されるはずです。
  • ユーザー venu が「ピクニック」を検索している場合、photo_1 と photo_2 が表示されます。

solrにfriends_ids、share_levelフィールドを強制的に調べるにはどうすればよいですか? facet.fieldでできますか?この場合、動的フィールドは機能しますか? いくつかのチュートリアルを読みましたが、明確な画像が得られません。

皆さんがこれに光を当ててくれることを願っています。前に進めますように。これが可能になることを願っています。

前もって感謝します!

4

1 に答える 1

2

の文字列フィールドが必要です。share_level可能な値はprivate, public, friendsです。

の multiValued フィールドも必要 です。現在の CSV 形式ではなく、各ユーザー ID を格納する必要がありますfriends_ids

注: この列タイプを修正する必要があります。mysqlで CSV を使用しないでください。適切なエンティティ関係を使用してください。

したがって、フィールドの準備が整い、再インデックスが完了すると、
写真を検索するのは次のようになります。

+name:$search +(share_level:public (+share_level:friends +friends_ids:$uid))

$search = picnic
$uid = 3 (jack)
于 2013-02-07T08:11:35.173 に答える