solr поиск на основе пользователя

Я новичок в solr. Поэтому, пожалуйста, медведь со мной.

Случаи использования

  • Пользователь может делиться своими фотографиями с друзьями или публично или делать это конфиденциально.
  • Пользователь может искать людей или фотографии (он должен просматривать только общедоступные фотографии, совместно с ним).

I have denormalized my relational data to solr schema. I have merged the user object & photo object into solr schema Schema

Так,

  • Если пользовательский разъем (пользователь 3) ищет «пикник», он не должен видеть фотографию_1, но см. фото_2.
  • Если пользователь venu ищет «пикник», он должен увидеть фото_1 и фото_2.

Как заставить srr заглянуть в поле friends_ids, share_level? я могу сделать с facet.field? Являются ли динамические поля для этого случая? Я прочитал несколько уроков, но я не получаю четкой картины.

Надеюсь, вы, ребята, пролили свет на это. Чтобы я мог идти вперед. Надеюсь, это должно быть возможно.

Заранее спасибо!

0
nl ja de

1 ответы

У вас должно быть поле строки для share_level , с возможным значением private, public, friends .

Вы также должны иметь поле multiValued для friends_ids ,
и он должен хранить каждый идентификатор пользователя вместо текущего формата CSV

ПРИМЕЧАНИЕ. Вы должны изменить этот тип столбца, НИКОГДА использовать CSV в mysql, использовать правильное отношение сущности

Итак, как только у вас будет готово поле и заполните reindex,
для поиска фотографии будет просто:

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

$search = picnic
$uid = 3 (jack)
2
добавлено
Спасибо за быстрый ответ! Я скоро к тебе вернусь! Я не использую формат csv в mysql, у меня есть одно отношение между таблицей user & frienship
добавлено автор Venu, источник
Я попытался привлечь пользователей к тому же поиску; + имя: venu (-share_level: [* TO *] OR + (share_level: public (+ share_level: friends + friend_ids: 1))), но его возвращаемые фотографии также доступны на уровне доли.
добавлено автор Venu, источник
да конечно. Большое спасибо за вашу помощь! Это действительно помогло мне!
добавлено автор Venu, источник
Используйте анализатор запросов, и я думаю, вы должны использовать это + name: venu + (...)
добавлено автор ajreal, источник