基于用户的solr搜索

时间:2013-02-07 07:57:27

标签: solr lucene

我是solr的新手。所以请耐心等待。

用例

  • 用户可以将自己的照片分享给朋友或公开,或将其私有化。
  • 用户可以搜索人物或照片(他应该只查看与他共享的公开照片)。

我已将关系数据反规范化为solr架构。我合并了用户对象&将照片对象转换为solr架构 Schema

所以,

  • 如果用户插孔(用户3)正在搜索“野餐”,他不应该看到photo_1但是看到photo_2。
  • 如果用户venu正在搜索“野餐”,他应该会看到photo_1和photo_2。

如何强制solr查看friends_ids,share_level字段?我可以用facet.field吗?动态字段是否适用于此情况?我已经阅读了一些教程,但我没有得到清晰的图片。

希望你们对此有所了解。这样我才能挺身而出。我希望这是可能的。

提前致谢!

1 个答案:

答案 0 :(得分:2)

您应该拥有share_level的字符串字段,其值可能为private, public, friends

您还应该拥有friends_ids的多值字段,
它应该存储每个用户ID而不是当前的CSV格式

注意:您应该修改此列类型,从不在mysql中使用CSV,使用正确的实体关系

因此,一旦你准备好了现场,并完成了重新索引,
搜索照片将只是:

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

$search = picnic
$uid = 3 (jack)