0

我是 solr 的新手。所以请多多包涵。

用例

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

我已将我的关系数据非规范化为 solr 模式。我已将用户对象和照片对象合并到 solr 架构中 架构

所以,

  • 如果用户 jack(用户 3)正在搜索“picnic”,他不应该看到 photo_1,而是看到 photo_2。
  • 如果用户 venu 正在搜索“picnic”,他应该会看到 photo_1 和 photo_2。

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

希望你们对此有所了解。这样我就可以前进了。我希望这应该是可能的。

提前致谢!

4

1 回答 1

2

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

您还应该有一个 multiValued 字段friends_ids
它应该存储每个用户 id 而不是当前的 CSV 格式

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

因此,一旦您准备好字段并完成重新索引,
搜索照片将只是:

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

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