Re: How do I accomplish this (semi-)complicated setup?

2009-03-26 Thread Aleksander M. Stensby
If you are saying that the number of private repos for the user is limited  
to say less than 10 or something like that, the query wouldn't be very  
long...

Something like public:true OR (repo_id:(1 OR 2 OR 3 OR 4)  etc.

- Aleks

On Thu, 26 Mar 2009 09:33:14 +0100, Jesper Nøhr  wrote:


Ah. Well that's what I thought, and that's where I get confused.

Realistically speaking, we have, say, 10.000 public repositories and
any given user may have 2 or 3 private repositories. This means that
when the user searches, he should search among all those 10.000 public
ones, but also his 2 or 3 private ones. That means we would have to
query for repo_id:1 OR repo_id:2 OR  repo_id:1. This is going
to get very long...


Jesper



On Wed, Mar 25, 2009 at 9:10 PM, Alejandro Gonzalez
 wrote:
try using db for permission management and when u want to make a rep  
public
u just have to add it's id or name to everyuser permissions field. i  
think

you don't need to add any "is_public" field to index, just an id or name
field in wich the indexed doc is.So you can pre-filter the reps quering  
the

db obtaining the reps for wich user has permissions and adding this
restrictions to the solr query. this way you can't change  
reps'permissions
without re-indexing. so the query for solr if the current user is  
allowed
for search in the 1 and 2 reps should be something like  
...rep_id:1OR2...



Alex


On Wed, Mar 25, 2009 at 8:06 PM, Jesper Nøhr  wrote:

OK, we're getting closer. I just have two final questions regarding  
this

then:

1. This would also include all the public repositories, right? If so,
how would such a query look? Some kind of is_public:true AND ...?

2. When a repository is made public, the is_public property in the
Solr index needs to reflect this. How can such an update be made
without having to purge and re-index?


Jesper


On Wed, Mar 25, 2009 at 6:29 PM, Alejandro Gonzalez
 wrote:
> ok so u can create a table in a DB where you have a row foreach user  
and

a
> field with the reps he/she can access. Then you just have to take a  
look

on
> the db and include the repository name in the index. so you just  
have to
> control (using query parameters) if the query is done for the right  
reps

for
> that user.
>
> is it good for u?
>
>
>
> On Wed, Mar 25, 2009 at 6:20 PM, Jesper Nøhr   
wrote:

>
>> Hm, I must be missing something, then.
>>
>> Consider this.
>>
>> There are three repositories, A and B, C. There are two users, U1  
and

U2.
>>
>> Repository A is public, while B and C are private. Only U1 can  
access

>> B. No one can access C.
>>
>> I index this data, such that Is_Private is true for B.
>>
>> Now, when U2 searches, he will only see data for repo A. This is
correct.
>>
>> When U1 searches, what happens? AFAIK, he will also only see data  
for

>> A, unless we specify Is_Private:True, but then he will only see data
>> for B (and C, which he doesn't have access to.)
>>
>> Secondly, say we grant U2 access to B. How do we tell Solr that he  
can

>> see it, then?
>>
>> Sorry if I'm not making much sense here, but I'm quite confused.
>>
>>
>> Jesper
>>
>>
>>
>> On Wed, Mar 25, 2009 at 6:13 PM, Alejandro Gonzalez
>>  wrote:
>> > i can't see the problem about that. you can manage your users  
using a

DB
>> and
>> > keep there the permissions they could have, and create or erase  
users
>> > without problems. you just have to manage a "working index" field  
for

>> each
>> > user with repositories' ids he can access. or u can create several
>> indexes
>> > and a users solr index with a multi-valued field with the indexes  
the

>> user
>> > can access.
>> >
>> > if then u want to turn a private repository into public u just  
have to

>> > change the permissions field in your DB or users' index.
>> >
>> > On Wed, Mar 25, 2009 at 6:02 PM, Jesper Nøhr 
wrote:
>> >
>> >> On Wed, Mar 25, 2009 at 5:57 PM, Eric Pugh
>> >>  wrote:
>> >> > You could index the user name or ID, and then in your  
application

add
>> as
>> >> > filter the username as you pass the query back to Solr.  Maybe  
have

a
>> >> > access_type that is Public or Private, and then for public  
searches

>> only
>> >> > include the ones that meet the access_type of Public.
>> >>
>> >> That makes sense. Two questions on that:
>> >>
>> >> 1. More than one user can have access to a repository, so how  
would
>> >> that work? Also, if a user is added/removed, what's the best way  
to

>> >> keep that in sync?
>> >>
>> >> 2. In the event that a repository that is private, is made  
public,

how
>> >> easy would it be to run an "UPDATE" so to speak?
>> >>
>> >>
>> >> Jesper
>> >>
>> >> > On Mar 25, 2009, at 12:52 PM, Jesper Nøhr wrote:
>> >> >
>> >> >> Hi list,
>> >> >>
>> >> >> I've finally settled on Solr, seeing as it has almost  
everything I

>> >> >> could want out of the box.
>> >> >>
>> >> >> My setup is a complicated one. It will serve as the search  
backend

on
>> >> >> Bitbucket.org, a mercurial hosting site. We have li

Re: How do I accomplish this (semi-)complicated setup?

2009-03-26 Thread Jesper Nøhr
Ah. Well that's what I thought, and that's where I get confused.

Realistically speaking, we have, say, 10.000 public repositories and
any given user may have 2 or 3 private repositories. This means that
when the user searches, he should search among all those 10.000 public
ones, but also his 2 or 3 private ones. That means we would have to
query for repo_id:1 OR repo_id:2 OR  repo_id:1. This is going
to get very long...


Jesper



On Wed, Mar 25, 2009 at 9:10 PM, Alejandro Gonzalez
 wrote:
> try using db for permission management and when u want to make a rep public
> u just have to add it's id or name to everyuser permissions field. i think
> you don't need to add any "is_public" field to index, just an id or name
> field in wich the indexed doc is.So you can pre-filter the reps quering the
> db obtaining the reps for wich user has permissions and adding this
> restrictions to the solr query. this way you can't change reps'permissions
> without re-indexing. so the query for solr if the current user is allowed
> for search in the 1 and 2 reps should be something like ...rep_id:1OR2...
>
>
> Alex
>
>
> On Wed, Mar 25, 2009 at 8:06 PM, Jesper Nøhr  wrote:
>
>> OK, we're getting closer. I just have two final questions regarding this
>> then:
>>
>> 1. This would also include all the public repositories, right? If so,
>> how would such a query look? Some kind of is_public:true AND ...?
>>
>> 2. When a repository is made public, the is_public property in the
>> Solr index needs to reflect this. How can such an update be made
>> without having to purge and re-index?
>>
>>
>> Jesper
>>
>>
>> On Wed, Mar 25, 2009 at 6:29 PM, Alejandro Gonzalez
>>  wrote:
>> > ok so u can create a table in a DB where you have a row foreach user and
>> a
>> > field with the reps he/she can access. Then you just have to take a look
>> on
>> > the db and include the repository name in the index. so you just have to
>> > control (using query parameters) if the query is done for the right reps
>> for
>> > that user.
>> >
>> > is it good for u?
>> >
>> >
>> >
>> > On Wed, Mar 25, 2009 at 6:20 PM, Jesper Nøhr  wrote:
>> >
>> >> Hm, I must be missing something, then.
>> >>
>> >> Consider this.
>> >>
>> >> There are three repositories, A and B, C. There are two users, U1 and
>> U2.
>> >>
>> >> Repository A is public, while B and C are private. Only U1 can access
>> >> B. No one can access C.
>> >>
>> >> I index this data, such that Is_Private is true for B.
>> >>
>> >> Now, when U2 searches, he will only see data for repo A. This is
>> correct.
>> >>
>> >> When U1 searches, what happens? AFAIK, he will also only see data for
>> >> A, unless we specify Is_Private:True, but then he will only see data
>> >> for B (and C, which he doesn't have access to.)
>> >>
>> >> Secondly, say we grant U2 access to B. How do we tell Solr that he can
>> >> see it, then?
>> >>
>> >> Sorry if I'm not making much sense here, but I'm quite confused.
>> >>
>> >>
>> >> Jesper
>> >>
>> >>
>> >>
>> >> On Wed, Mar 25, 2009 at 6:13 PM, Alejandro Gonzalez
>> >>  wrote:
>> >> > i can't see the problem about that. you can manage your users using a
>> DB
>> >> and
>> >> > keep there the permissions they could have, and create or erase users
>> >> > without problems. you just have to manage a "working index" field for
>> >> each
>> >> > user with repositories' ids he can access. or u can create several
>> >> indexes
>> >> > and a users solr index with a multi-valued field with the indexes the
>> >> user
>> >> > can access.
>> >> >
>> >> > if then u want to turn a private repository into public u just have to
>> >> > change the permissions field in your DB or users' index.
>> >> >
>> >> > On Wed, Mar 25, 2009 at 6:02 PM, Jesper Nøhr 
>> wrote:
>> >> >
>> >> >> On Wed, Mar 25, 2009 at 5:57 PM, Eric Pugh
>> >> >>  wrote:
>> >> >> > You could index the user name or ID, and then in your application
>> add
>> >> as
>> >> >> > filter the username as you pass the query back to Solr.  Maybe have
>> a
>> >> >> > access_type that is Public or Private, and then for public searches
>> >> only
>> >> >> > include the ones that meet the access_type of Public.
>> >> >>
>> >> >> That makes sense. Two questions on that:
>> >> >>
>> >> >> 1. More than one user can have access to a repository, so how would
>> >> >> that work? Also, if a user is added/removed, what's the best way to
>> >> >> keep that in sync?
>> >> >>
>> >> >> 2. In the event that a repository that is private, is made public,
>> how
>> >> >> easy would it be to run an "UPDATE" so to speak?
>> >> >>
>> >> >>
>> >> >> Jesper
>> >> >>
>> >> >> > On Mar 25, 2009, at 12:52 PM, Jesper Nøhr wrote:
>> >> >> >
>> >> >> >> Hi list,
>> >> >> >>
>> >> >> >> I've finally settled on Solr, seeing as it has almost everything I
>> >> >> >> could want out of the box.
>> >> >> >>
>> >> >> >> My setup is a complicated one. It will serve as the search backend
>> on
>> >> >> >> Bitbucket.org, a mercurial hosting site. We have literally
>> 

Re: How do I accomplish this (semi-)complicated setup?

2009-03-25 Thread Alejandro Gonzalez
try using db for permission management and when u want to make a rep public
u just have to add it's id or name to everyuser permissions field. i think
you don't need to add any "is_public" field to index, just an id or name
field in wich the indexed doc is.So you can pre-filter the reps quering the
db obtaining the reps for wich user has permissions and adding this
restrictions to the solr query. this way you can't change reps'permissions
without re-indexing. so the query for solr if the current user is allowed
for search in the 1 and 2 reps should be something like ...rep_id:1OR2...


Alex


On Wed, Mar 25, 2009 at 8:06 PM, Jesper Nøhr  wrote:

> OK, we're getting closer. I just have two final questions regarding this
> then:
>
> 1. This would also include all the public repositories, right? If so,
> how would such a query look? Some kind of is_public:true AND ...?
>
> 2. When a repository is made public, the is_public property in the
> Solr index needs to reflect this. How can such an update be made
> without having to purge and re-index?
>
>
> Jesper
>
>
> On Wed, Mar 25, 2009 at 6:29 PM, Alejandro Gonzalez
>  wrote:
> > ok so u can create a table in a DB where you have a row foreach user and
> a
> > field with the reps he/she can access. Then you just have to take a look
> on
> > the db and include the repository name in the index. so you just have to
> > control (using query parameters) if the query is done for the right reps
> for
> > that user.
> >
> > is it good for u?
> >
> >
> >
> > On Wed, Mar 25, 2009 at 6:20 PM, Jesper Nøhr  wrote:
> >
> >> Hm, I must be missing something, then.
> >>
> >> Consider this.
> >>
> >> There are three repositories, A and B, C. There are two users, U1 and
> U2.
> >>
> >> Repository A is public, while B and C are private. Only U1 can access
> >> B. No one can access C.
> >>
> >> I index this data, such that Is_Private is true for B.
> >>
> >> Now, when U2 searches, he will only see data for repo A. This is
> correct.
> >>
> >> When U1 searches, what happens? AFAIK, he will also only see data for
> >> A, unless we specify Is_Private:True, but then he will only see data
> >> for B (and C, which he doesn't have access to.)
> >>
> >> Secondly, say we grant U2 access to B. How do we tell Solr that he can
> >> see it, then?
> >>
> >> Sorry if I'm not making much sense here, but I'm quite confused.
> >>
> >>
> >> Jesper
> >>
> >>
> >>
> >> On Wed, Mar 25, 2009 at 6:13 PM, Alejandro Gonzalez
> >>  wrote:
> >> > i can't see the problem about that. you can manage your users using a
> DB
> >> and
> >> > keep there the permissions they could have, and create or erase users
> >> > without problems. you just have to manage a "working index" field for
> >> each
> >> > user with repositories' ids he can access. or u can create several
> >> indexes
> >> > and a users solr index with a multi-valued field with the indexes the
> >> user
> >> > can access.
> >> >
> >> > if then u want to turn a private repository into public u just have to
> >> > change the permissions field in your DB or users' index.
> >> >
> >> > On Wed, Mar 25, 2009 at 6:02 PM, Jesper Nøhr 
> wrote:
> >> >
> >> >> On Wed, Mar 25, 2009 at 5:57 PM, Eric Pugh
> >> >>  wrote:
> >> >> > You could index the user name or ID, and then in your application
> add
> >> as
> >> >> > filter the username as you pass the query back to Solr.  Maybe have
> a
> >> >> > access_type that is Public or Private, and then for public searches
> >> only
> >> >> > include the ones that meet the access_type of Public.
> >> >>
> >> >> That makes sense. Two questions on that:
> >> >>
> >> >> 1. More than one user can have access to a repository, so how would
> >> >> that work? Also, if a user is added/removed, what's the best way to
> >> >> keep that in sync?
> >> >>
> >> >> 2. In the event that a repository that is private, is made public,
> how
> >> >> easy would it be to run an "UPDATE" so to speak?
> >> >>
> >> >>
> >> >> Jesper
> >> >>
> >> >> > On Mar 25, 2009, at 12:52 PM, Jesper Nøhr wrote:
> >> >> >
> >> >> >> Hi list,
> >> >> >>
> >> >> >> I've finally settled on Solr, seeing as it has almost everything I
> >> >> >> could want out of the box.
> >> >> >>
> >> >> >> My setup is a complicated one. It will serve as the search backend
> on
> >> >> >> Bitbucket.org, a mercurial hosting site. We have literally
> thousands
> >> >> >> of code repositories, as well as users and other data. All this
> needs
> >> >> >> to be indexed.
> >> >> >>
> >> >> >> The complication comes in when we have private repositories. Only
> >> >> >> select users have access to these, but we still need to index
> them.
> >> >> >>
> >> >> >> How would I go about accomplishing this? I can't think of a clean
> way
> >> to
> >> >> >> do it.
> >> >> >>
> >> >> >> Any pointers much appreciated.
> >> >> >>
> >> >> >>
> >> >> >> Jesper
> >> >> >
> >> >> > -
> >> >> > Eric Pugh | Principal | OpenSource Connections, LLC | 434.46

Re: How do I accomplish this (semi-)complicated setup?

2009-03-25 Thread Jesper Nøhr
OK, we're getting closer. I just have two final questions regarding this then:

1. This would also include all the public repositories, right? If so,
how would such a query look? Some kind of is_public:true AND ...?

2. When a repository is made public, the is_public property in the
Solr index needs to reflect this. How can such an update be made
without having to purge and re-index?


Jesper


On Wed, Mar 25, 2009 at 6:29 PM, Alejandro Gonzalez
 wrote:
> ok so u can create a table in a DB where you have a row foreach user and a
> field with the reps he/she can access. Then you just have to take a look on
> the db and include the repository name in the index. so you just have to
> control (using query parameters) if the query is done for the right reps for
> that user.
>
> is it good for u?
>
>
>
> On Wed, Mar 25, 2009 at 6:20 PM, Jesper Nøhr  wrote:
>
>> Hm, I must be missing something, then.
>>
>> Consider this.
>>
>> There are three repositories, A and B, C. There are two users, U1 and U2.
>>
>> Repository A is public, while B and C are private. Only U1 can access
>> B. No one can access C.
>>
>> I index this data, such that Is_Private is true for B.
>>
>> Now, when U2 searches, he will only see data for repo A. This is correct.
>>
>> When U1 searches, what happens? AFAIK, he will also only see data for
>> A, unless we specify Is_Private:True, but then he will only see data
>> for B (and C, which he doesn't have access to.)
>>
>> Secondly, say we grant U2 access to B. How do we tell Solr that he can
>> see it, then?
>>
>> Sorry if I'm not making much sense here, but I'm quite confused.
>>
>>
>> Jesper
>>
>>
>>
>> On Wed, Mar 25, 2009 at 6:13 PM, Alejandro Gonzalez
>>  wrote:
>> > i can't see the problem about that. you can manage your users using a DB
>> and
>> > keep there the permissions they could have, and create or erase users
>> > without problems. you just have to manage a "working index" field for
>> each
>> > user with repositories' ids he can access. or u can create several
>> indexes
>> > and a users solr index with a multi-valued field with the indexes the
>> user
>> > can access.
>> >
>> > if then u want to turn a private repository into public u just have to
>> > change the permissions field in your DB or users' index.
>> >
>> > On Wed, Mar 25, 2009 at 6:02 PM, Jesper Nøhr  wrote:
>> >
>> >> On Wed, Mar 25, 2009 at 5:57 PM, Eric Pugh
>> >>  wrote:
>> >> > You could index the user name or ID, and then in your application add
>> as
>> >> > filter the username as you pass the query back to Solr.  Maybe have a
>> >> > access_type that is Public or Private, and then for public searches
>> only
>> >> > include the ones that meet the access_type of Public.
>> >>
>> >> That makes sense. Two questions on that:
>> >>
>> >> 1. More than one user can have access to a repository, so how would
>> >> that work? Also, if a user is added/removed, what's the best way to
>> >> keep that in sync?
>> >>
>> >> 2. In the event that a repository that is private, is made public, how
>> >> easy would it be to run an "UPDATE" so to speak?
>> >>
>> >>
>> >> Jesper
>> >>
>> >> > On Mar 25, 2009, at 12:52 PM, Jesper Nøhr wrote:
>> >> >
>> >> >> Hi list,
>> >> >>
>> >> >> I've finally settled on Solr, seeing as it has almost everything I
>> >> >> could want out of the box.
>> >> >>
>> >> >> My setup is a complicated one. It will serve as the search backend on
>> >> >> Bitbucket.org, a mercurial hosting site. We have literally thousands
>> >> >> of code repositories, as well as users and other data. All this needs
>> >> >> to be indexed.
>> >> >>
>> >> >> The complication comes in when we have private repositories. Only
>> >> >> select users have access to these, but we still need to index them.
>> >> >>
>> >> >> How would I go about accomplishing this? I can't think of a clean way
>> to
>> >> >> do it.
>> >> >>
>> >> >> Any pointers much appreciated.
>> >> >>
>> >> >>
>> >> >> Jesper
>> >> >
>> >> > -
>> >> > Eric Pugh | Principal | OpenSource Connections, LLC | 434.466.1467 |
>> >> > http://www.opensourceconnections.com
>> >> > Free/Busy: http://tinyurl.com/eric-cal
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >>
>> >
>>
>


Re: How do I accomplish this (semi-)complicated setup?

2009-03-25 Thread Alejandro Gonzalez
ok so u can create a table in a DB where you have a row foreach user and a
field with the reps he/she can access. Then you just have to take a look on
the db and include the repository name in the index. so you just have to
control (using query parameters) if the query is done for the right reps for
that user.

is it good for u?



On Wed, Mar 25, 2009 at 6:20 PM, Jesper Nøhr  wrote:

> Hm, I must be missing something, then.
>
> Consider this.
>
> There are three repositories, A and B, C. There are two users, U1 and U2.
>
> Repository A is public, while B and C are private. Only U1 can access
> B. No one can access C.
>
> I index this data, such that Is_Private is true for B.
>
> Now, when U2 searches, he will only see data for repo A. This is correct.
>
> When U1 searches, what happens? AFAIK, he will also only see data for
> A, unless we specify Is_Private:True, but then he will only see data
> for B (and C, which he doesn't have access to.)
>
> Secondly, say we grant U2 access to B. How do we tell Solr that he can
> see it, then?
>
> Sorry if I'm not making much sense here, but I'm quite confused.
>
>
> Jesper
>
>
>
> On Wed, Mar 25, 2009 at 6:13 PM, Alejandro Gonzalez
>  wrote:
> > i can't see the problem about that. you can manage your users using a DB
> and
> > keep there the permissions they could have, and create or erase users
> > without problems. you just have to manage a "working index" field for
> each
> > user with repositories' ids he can access. or u can create several
> indexes
> > and a users solr index with a multi-valued field with the indexes the
> user
> > can access.
> >
> > if then u want to turn a private repository into public u just have to
> > change the permissions field in your DB or users' index.
> >
> > On Wed, Mar 25, 2009 at 6:02 PM, Jesper Nøhr  wrote:
> >
> >> On Wed, Mar 25, 2009 at 5:57 PM, Eric Pugh
> >>  wrote:
> >> > You could index the user name or ID, and then in your application add
> as
> >> > filter the username as you pass the query back to Solr.  Maybe have a
> >> > access_type that is Public or Private, and then for public searches
> only
> >> > include the ones that meet the access_type of Public.
> >>
> >> That makes sense. Two questions on that:
> >>
> >> 1. More than one user can have access to a repository, so how would
> >> that work? Also, if a user is added/removed, what's the best way to
> >> keep that in sync?
> >>
> >> 2. In the event that a repository that is private, is made public, how
> >> easy would it be to run an "UPDATE" so to speak?
> >>
> >>
> >> Jesper
> >>
> >> > On Mar 25, 2009, at 12:52 PM, Jesper Nøhr wrote:
> >> >
> >> >> Hi list,
> >> >>
> >> >> I've finally settled on Solr, seeing as it has almost everything I
> >> >> could want out of the box.
> >> >>
> >> >> My setup is a complicated one. It will serve as the search backend on
> >> >> Bitbucket.org, a mercurial hosting site. We have literally thousands
> >> >> of code repositories, as well as users and other data. All this needs
> >> >> to be indexed.
> >> >>
> >> >> The complication comes in when we have private repositories. Only
> >> >> select users have access to these, but we still need to index them.
> >> >>
> >> >> How would I go about accomplishing this? I can't think of a clean way
> to
> >> >> do it.
> >> >>
> >> >> Any pointers much appreciated.
> >> >>
> >> >>
> >> >> Jesper
> >> >
> >> > -
> >> > Eric Pugh | Principal | OpenSource Connections, LLC | 434.466.1467 |
> >> > http://www.opensourceconnections.com
> >> > Free/Busy: http://tinyurl.com/eric-cal
> >> >
> >> >
> >> >
> >> >
> >> >
> >>
> >
>


Re: How do I accomplish this (semi-)complicated setup?

2009-03-25 Thread Jesper Nøhr
Hm, I must be missing something, then.

Consider this.

There are three repositories, A and B, C. There are two users, U1 and U2.

Repository A is public, while B and C are private. Only U1 can access
B. No one can access C.

I index this data, such that Is_Private is true for B.

Now, when U2 searches, he will only see data for repo A. This is correct.

When U1 searches, what happens? AFAIK, he will also only see data for
A, unless we specify Is_Private:True, but then he will only see data
for B (and C, which he doesn't have access to.)

Secondly, say we grant U2 access to B. How do we tell Solr that he can
see it, then?

Sorry if I'm not making much sense here, but I'm quite confused.


Jesper



On Wed, Mar 25, 2009 at 6:13 PM, Alejandro Gonzalez
 wrote:
> i can't see the problem about that. you can manage your users using a DB and
> keep there the permissions they could have, and create or erase users
> without problems. you just have to manage a "working index" field for each
> user with repositories' ids he can access. or u can create several indexes
> and a users solr index with a multi-valued field with the indexes the user
> can access.
>
> if then u want to turn a private repository into public u just have to
> change the permissions field in your DB or users' index.
>
> On Wed, Mar 25, 2009 at 6:02 PM, Jesper Nøhr  wrote:
>
>> On Wed, Mar 25, 2009 at 5:57 PM, Eric Pugh
>>  wrote:
>> > You could index the user name or ID, and then in your application add as
>> > filter the username as you pass the query back to Solr.  Maybe have a
>> > access_type that is Public or Private, and then for public searches only
>> > include the ones that meet the access_type of Public.
>>
>> That makes sense. Two questions on that:
>>
>> 1. More than one user can have access to a repository, so how would
>> that work? Also, if a user is added/removed, what's the best way to
>> keep that in sync?
>>
>> 2. In the event that a repository that is private, is made public, how
>> easy would it be to run an "UPDATE" so to speak?
>>
>>
>> Jesper
>>
>> > On Mar 25, 2009, at 12:52 PM, Jesper Nøhr wrote:
>> >
>> >> Hi list,
>> >>
>> >> I've finally settled on Solr, seeing as it has almost everything I
>> >> could want out of the box.
>> >>
>> >> My setup is a complicated one. It will serve as the search backend on
>> >> Bitbucket.org, a mercurial hosting site. We have literally thousands
>> >> of code repositories, as well as users and other data. All this needs
>> >> to be indexed.
>> >>
>> >> The complication comes in when we have private repositories. Only
>> >> select users have access to these, but we still need to index them.
>> >>
>> >> How would I go about accomplishing this? I can't think of a clean way to
>> >> do it.
>> >>
>> >> Any pointers much appreciated.
>> >>
>> >>
>> >> Jesper
>> >
>> > -
>> > Eric Pugh | Principal | OpenSource Connections, LLC | 434.466.1467 |
>> > http://www.opensourceconnections.com
>> > Free/Busy: http://tinyurl.com/eric-cal
>> >
>> >
>> >
>> >
>> >
>>
>


Re: How do I accomplish this (semi-)complicated setup?

2009-03-25 Thread Alejandro Gonzalez
i can't see the problem about that. you can manage your users using a DB and
keep there the permissions they could have, and create or erase users
without problems. you just have to manage a "working index" field for each
user with repositories' ids he can access. or u can create several indexes
and a users solr index with a multi-valued field with the indexes the user
can access.

if then u want to turn a private repository into public u just have to
change the permissions field in your DB or users' index.

On Wed, Mar 25, 2009 at 6:02 PM, Jesper Nøhr  wrote:

> On Wed, Mar 25, 2009 at 5:57 PM, Eric Pugh
>  wrote:
> > You could index the user name or ID, and then in your application add as
> > filter the username as you pass the query back to Solr.  Maybe have a
> > access_type that is Public or Private, and then for public searches only
> > include the ones that meet the access_type of Public.
>
> That makes sense. Two questions on that:
>
> 1. More than one user can have access to a repository, so how would
> that work? Also, if a user is added/removed, what's the best way to
> keep that in sync?
>
> 2. In the event that a repository that is private, is made public, how
> easy would it be to run an "UPDATE" so to speak?
>
>
> Jesper
>
> > On Mar 25, 2009, at 12:52 PM, Jesper Nøhr wrote:
> >
> >> Hi list,
> >>
> >> I've finally settled on Solr, seeing as it has almost everything I
> >> could want out of the box.
> >>
> >> My setup is a complicated one. It will serve as the search backend on
> >> Bitbucket.org, a mercurial hosting site. We have literally thousands
> >> of code repositories, as well as users and other data. All this needs
> >> to be indexed.
> >>
> >> The complication comes in when we have private repositories. Only
> >> select users have access to these, but we still need to index them.
> >>
> >> How would I go about accomplishing this? I can't think of a clean way to
> >> do it.
> >>
> >> Any pointers much appreciated.
> >>
> >>
> >> Jesper
> >
> > -
> > Eric Pugh | Principal | OpenSource Connections, LLC | 434.466.1467 |
> > http://www.opensourceconnections.com
> > Free/Busy: http://tinyurl.com/eric-cal
> >
> >
> >
> >
> >
>


Re: How do I accomplish this (semi-)complicated setup?

2009-03-25 Thread Alejandro Gonzalez
you can even create separated indexes for private or public access if u need
(and place them in separated machines), but i think Eric's suggestion is the
best and easier

On Wed, Mar 25, 2009 at 5:52 PM, Jesper Nøhr  wrote:

> Hi list,
>
> I've finally settled on Solr, seeing as it has almost everything I
> could want out of the box.
>
> My setup is a complicated one. It will serve as the search backend on
> Bitbucket.org, a mercurial hosting site. We have literally thousands
> of code repositories, as well as users and other data. All this needs
> to be indexed.
>
> The complication comes in when we have private repositories. Only
> select users have access to these, but we still need to index them.
>
> How would I go about accomplishing this? I can't think of a clean way to do
> it.
>
> Any pointers much appreciated.
>
>
> Jesper
>


Re: How do I accomplish this (semi-)complicated setup?

2009-03-25 Thread Jesper Nøhr
On Wed, Mar 25, 2009 at 5:57 PM, Eric Pugh
 wrote:
> You could index the user name or ID, and then in your application add as
> filter the username as you pass the query back to Solr.  Maybe have a
> access_type that is Public or Private, and then for public searches only
> include the ones that meet the access_type of Public.

That makes sense. Two questions on that:

1. More than one user can have access to a repository, so how would
that work? Also, if a user is added/removed, what's the best way to
keep that in sync?

2. In the event that a repository that is private, is made public, how
easy would it be to run an "UPDATE" so to speak?


Jesper

> On Mar 25, 2009, at 12:52 PM, Jesper Nøhr wrote:
>
>> Hi list,
>>
>> I've finally settled on Solr, seeing as it has almost everything I
>> could want out of the box.
>>
>> My setup is a complicated one. It will serve as the search backend on
>> Bitbucket.org, a mercurial hosting site. We have literally thousands
>> of code repositories, as well as users and other data. All this needs
>> to be indexed.
>>
>> The complication comes in when we have private repositories. Only
>> select users have access to these, but we still need to index them.
>>
>> How would I go about accomplishing this? I can't think of a clean way to
>> do it.
>>
>> Any pointers much appreciated.
>>
>>
>> Jesper
>
> -
> Eric Pugh | Principal | OpenSource Connections, LLC | 434.466.1467 |
> http://www.opensourceconnections.com
> Free/Busy: http://tinyurl.com/eric-cal
>
>
>
>
>


Re: How do I accomplish this (semi-)complicated setup?

2009-03-25 Thread Eric Pugh
You could index the user name or ID, and then in your application add  
as filter the username as you pass the query back to Solr.  Maybe have  
a access_type that is Public or Private, and then for public searches  
only include the ones that meet the access_type of Public.


Eric


On Mar 25, 2009, at 12:52 PM, Jesper Nøhr wrote:


Hi list,

I've finally settled on Solr, seeing as it has almost everything I
could want out of the box.

My setup is a complicated one. It will serve as the search backend on
Bitbucket.org, a mercurial hosting site. We have literally thousands
of code repositories, as well as users and other data. All this needs
to be indexed.

The complication comes in when we have private repositories. Only
select users have access to these, but we still need to index them.

How would I go about accomplishing this? I can't think of a clean  
way to do it.


Any pointers much appreciated.


Jesper


-
Eric Pugh | Principal | OpenSource Connections, LLC | 434.466.1467 | 
http://www.opensourceconnections.com
Free/Busy: http://tinyurl.com/eric-cal






How do I accomplish this (semi-)complicated setup?

2009-03-25 Thread Jesper Nøhr
Hi list,

I've finally settled on Solr, seeing as it has almost everything I
could want out of the box.

My setup is a complicated one. It will serve as the search backend on
Bitbucket.org, a mercurial hosting site. We have literally thousands
of code repositories, as well as users and other data. All this needs
to be indexed.

The complication comes in when we have private repositories. Only
select users have access to these, but we still need to index them.

How would I go about accomplishing this? I can't think of a clean way to do it.

Any pointers much appreciated.


Jesper