Re: Storing different entities in Solr

2010-05-31 Thread Moazzam Khan
Thanks for the replies guys. I am not at work so I don't have the
exact schema but here's what it roughly looks like:


Request:
==
id
client_id
pm_id
pm2_id
title



Advisor:
==
id
person_id
address_id
bio
sector (IT, doctor, etc)



There's another table.

RequestAdvisor:
=
id
advisor_id
request_id

The idea of adding a prefix to primary keys does sound good. I can
just do advisor_123 and request_12345.





On Sun, May 30, 2010 at 9:22 PM, Bill Au  wrote:
> There is only one primary key in a single index.  If the id of your
> different document types do collide, you can simply add a prefix or suffix
> to make them unique.
>
> Bill
>
> On Fri, May 28, 2010 at 1:12 PM, Moazzam Khan  wrote:
>
>> Thanks for all your answers guys. Requests and consultants have a many
>> to many relationship so I can't store request info in a document with
>> advisorID as the primary key.
>>
>> Bill's solution and multicore solutions might be what I am looking
>> for. Bill, will I be able to have 2 primary keys (so I can update and
>> delete documents)? If yes, can you please give me a link or someting
>> where I can get more info on this?
>>
>> Thanks,
>> Moazzam
>>
>>
>>
>> On Fri, May 28, 2010 at 11:50 AM, Bill Au  wrote:
>> > You can keep different type of documents in the same index.  If each
>> > document has a type field.  You can restrict your searches to specific
>> > type(s) of document by using a filter query, which is very fast and
>> > efficient.
>> >
>> > Bill
>> >
>> > On Fri, May 28, 2010 at 12:28 PM, Nagelberg, Kallin <
>> > knagelb...@globeandmail.com> wrote:
>> >
>> >> Multi-core is an option, but keep in mind if you go that route you will
>> >> need to do two searches to correlate data between the two.
>> >>
>> >> -Kallin Nagelberg
>> >>
>> >> -Original Message-
>> >> From: Robert Zotter [mailto:robertzot...@gmail.com]
>> >> Sent: Friday, May 28, 2010 12:26 PM
>> >> To: solr-user@lucene.apache.org
>> >> Subject: Re: Storing different entities in Solr
>> >>
>> >>
>> >> Sounds like you'll want to use a multiple core setup. One core fore each
>> >> type
>> >> of "document"
>> >>
>> >> http://wiki.apache.org/solr/CoreAdmin
>> >> --
>> >> View this message in context:
>> >>
>> http://lucene.472066.n3.nabble.com/Storing-different-entities-in-Solr-tp852299p852346.html
>> >> Sent from the Solr - User mailing list archive at Nabble.com.
>> >>
>> >
>>
>


Re: Storing different entities in Solr

2010-05-30 Thread Bill Au
There is only one primary key in a single index.  If the id of your
different document types do collide, you can simply add a prefix or suffix
to make them unique.

Bill

On Fri, May 28, 2010 at 1:12 PM, Moazzam Khan  wrote:

> Thanks for all your answers guys. Requests and consultants have a many
> to many relationship so I can't store request info in a document with
> advisorID as the primary key.
>
> Bill's solution and multicore solutions might be what I am looking
> for. Bill, will I be able to have 2 primary keys (so I can update and
> delete documents)? If yes, can you please give me a link or someting
> where I can get more info on this?
>
> Thanks,
> Moazzam
>
>
>
> On Fri, May 28, 2010 at 11:50 AM, Bill Au  wrote:
> > You can keep different type of documents in the same index.  If each
> > document has a type field.  You can restrict your searches to specific
> > type(s) of document by using a filter query, which is very fast and
> > efficient.
> >
> > Bill
> >
> > On Fri, May 28, 2010 at 12:28 PM, Nagelberg, Kallin <
> > knagelb...@globeandmail.com> wrote:
> >
> >> Multi-core is an option, but keep in mind if you go that route you will
> >> need to do two searches to correlate data between the two.
> >>
> >> -Kallin Nagelberg
> >>
> >> -----Original Message-----
> >> From: Robert Zotter [mailto:robertzot...@gmail.com]
> >> Sent: Friday, May 28, 2010 12:26 PM
> >> To: solr-user@lucene.apache.org
> >> Subject: Re: Storing different entities in Solr
> >>
> >>
> >> Sounds like you'll want to use a multiple core setup. One core fore each
> >> type
> >> of "document"
> >>
> >> http://wiki.apache.org/solr/CoreAdmin
> >> --
> >> View this message in context:
> >>
> http://lucene.472066.n3.nabble.com/Storing-different-entities-in-Solr-tp852299p852346.html
> >> Sent from the Solr - User mailing list archive at Nabble.com.
> >>
> >
>


Re: Storing different entities in Solr

2010-05-28 Thread Lance Norskog
The size of the join table is the number of documents, if you
denormalize the two tables.

On Fri, May 28, 2010 at 11:38 AM, Nagelberg, Kallin
 wrote:
> I agree with Erick,
>
> Could you show us what these two entities look like, and the total count of 
> each? That might shed some light on the appropriate approach.
>
> -Kallin Nagelberg
>
> -Original Message-
> From: Erick Erickson [mailto:erickerick...@gmail.com]
> Sent: Friday, May 28, 2010 2:36 PM
> To: solr-user@lucene.apache.org
> Subject: Re: Storing different entities in Solr
>
> You most certainly *can* store the many<->many relationship, you
> are just denormalizing your data. I know it goes against the grain
> of any good database admin, but it's very often a good solution
> for a search application.
>
> You've gotta forget almost everything you learned about how data
> *should* be stored in databases when working with a search app.
> Well, perhaps I'm overstating a bit, but you get the idea
>
> When I see messages about primary keys and foreign keys etc, I
> break out in hives. It's almost always a mistake to try to force
> lucene/solr to behave like a database. Whenever you find yourself
> trying, stop, take a deep breath, and think about searching ...
>
> A lot depends on how much data we're talking about here. If
> fully denormalizing things would cost you 10M, who cares? If it
> would cost you 100G, it's a different story
>
> Best
> Erick
>
>
> On Fri, May 28, 2010 at 1:12 PM, Moazzam Khan  wrote:
>
>> Thanks for all your answers guys. Requests and consultants have a many
>> to many relationship so I can't store request info in a document with
>> advisorID as the primary key.
>>
>> Bill's solution and multicore solutions might be what I am looking
>> for. Bill, will I be able to have 2 primary keys (so I can update and
>> delete documents)? If yes, can you please give me a link or someting
>> where I can get more info on this?
>>
>> Thanks,
>> Moazzam
>>
>>
>>
>> On Fri, May 28, 2010 at 11:50 AM, Bill Au  wrote:
>> > You can keep different type of documents in the same index.  If each
>> > document has a type field.  You can restrict your searches to specific
>> > type(s) of document by using a filter query, which is very fast and
>> > efficient.
>> >
>> > Bill
>> >
>> > On Fri, May 28, 2010 at 12:28 PM, Nagelberg, Kallin <
>> > knagelb...@globeandmail.com> wrote:
>> >
>> >> Multi-core is an option, but keep in mind if you go that route you will
>> >> need to do two searches to correlate data between the two.
>> >>
>> >> -Kallin Nagelberg
>> >>
>> >> -Original Message-
>> >> From: Robert Zotter [mailto:robertzot...@gmail.com]
>> >> Sent: Friday, May 28, 2010 12:26 PM
>> >> To: solr-user@lucene.apache.org
>> >> Subject: Re: Storing different entities in Solr
>> >>
>> >>
>> >> Sounds like you'll want to use a multiple core setup. One core fore each
>> >> type
>> >> of "document"
>> >>
>> >> http://wiki.apache.org/solr/CoreAdmin
>> >> --
>> >> View this message in context:
>> >>
>> http://lucene.472066.n3.nabble.com/Storing-different-entities-in-Solr-tp852299p852346.html
>> >> Sent from the Solr - User mailing list archive at Nabble.com.
>> >>
>> >
>>
>



-- 
Lance Norskog
goks...@gmail.com


RE: Storing different entities in Solr

2010-05-28 Thread Nagelberg, Kallin
I agree with Erick,

Could you show us what these two entities look like, and the total count of 
each? That might shed some light on the appropriate approach.

-Kallin Nagelberg

-Original Message-
From: Erick Erickson [mailto:erickerick...@gmail.com] 
Sent: Friday, May 28, 2010 2:36 PM
To: solr-user@lucene.apache.org
Subject: Re: Storing different entities in Solr

You most certainly *can* store the many<->many relationship, you
are just denormalizing your data. I know it goes against the grain
of any good database admin, but it's very often a good solution
for a search application.

You've gotta forget almost everything you learned about how data
*should* be stored in databases when working with a search app.
Well, perhaps I'm overstating a bit, but you get the idea

When I see messages about primary keys and foreign keys etc, I
break out in hives. It's almost always a mistake to try to force
lucene/solr to behave like a database. Whenever you find yourself
trying, stop, take a deep breath, and think about searching ...

A lot depends on how much data we're talking about here. If
fully denormalizing things would cost you 10M, who cares? If it
would cost you 100G, it's a different story

Best
Erick


On Fri, May 28, 2010 at 1:12 PM, Moazzam Khan  wrote:

> Thanks for all your answers guys. Requests and consultants have a many
> to many relationship so I can't store request info in a document with
> advisorID as the primary key.
>
> Bill's solution and multicore solutions might be what I am looking
> for. Bill, will I be able to have 2 primary keys (so I can update and
> delete documents)? If yes, can you please give me a link or someting
> where I can get more info on this?
>
> Thanks,
> Moazzam
>
>
>
> On Fri, May 28, 2010 at 11:50 AM, Bill Au  wrote:
> > You can keep different type of documents in the same index.  If each
> > document has a type field.  You can restrict your searches to specific
> > type(s) of document by using a filter query, which is very fast and
> > efficient.
> >
> > Bill
> >
> > On Fri, May 28, 2010 at 12:28 PM, Nagelberg, Kallin <
> > knagelb...@globeandmail.com> wrote:
> >
> >> Multi-core is an option, but keep in mind if you go that route you will
> >> need to do two searches to correlate data between the two.
> >>
> >> -Kallin Nagelberg
> >>
> >> -----Original Message-
> >> From: Robert Zotter [mailto:robertzot...@gmail.com]
> >> Sent: Friday, May 28, 2010 12:26 PM
> >> To: solr-user@lucene.apache.org
> >> Subject: Re: Storing different entities in Solr
> >>
> >>
> >> Sounds like you'll want to use a multiple core setup. One core fore each
> >> type
> >> of "document"
> >>
> >> http://wiki.apache.org/solr/CoreAdmin
> >> --
> >> View this message in context:
> >>
> http://lucene.472066.n3.nabble.com/Storing-different-entities-in-Solr-tp852299p852346.html
> >> Sent from the Solr - User mailing list archive at Nabble.com.
> >>
> >
>


Re: Storing different entities in Solr

2010-05-28 Thread Erick Erickson
You most certainly *can* store the many<->many relationship, you
are just denormalizing your data. I know it goes against the grain
of any good database admin, but it's very often a good solution
for a search application.

You've gotta forget almost everything you learned about how data
*should* be stored in databases when working with a search app.
Well, perhaps I'm overstating a bit, but you get the idea

When I see messages about primary keys and foreign keys etc, I
break out in hives. It's almost always a mistake to try to force
lucene/solr to behave like a database. Whenever you find yourself
trying, stop, take a deep breath, and think about searching ...

A lot depends on how much data we're talking about here. If
fully denormalizing things would cost you 10M, who cares? If it
would cost you 100G, it's a different story

Best
Erick


On Fri, May 28, 2010 at 1:12 PM, Moazzam Khan  wrote:

> Thanks for all your answers guys. Requests and consultants have a many
> to many relationship so I can't store request info in a document with
> advisorID as the primary key.
>
> Bill's solution and multicore solutions might be what I am looking
> for. Bill, will I be able to have 2 primary keys (so I can update and
> delete documents)? If yes, can you please give me a link or someting
> where I can get more info on this?
>
> Thanks,
> Moazzam
>
>
>
> On Fri, May 28, 2010 at 11:50 AM, Bill Au  wrote:
> > You can keep different type of documents in the same index.  If each
> > document has a type field.  You can restrict your searches to specific
> > type(s) of document by using a filter query, which is very fast and
> > efficient.
> >
> > Bill
> >
> > On Fri, May 28, 2010 at 12:28 PM, Nagelberg, Kallin <
> > knagelb...@globeandmail.com> wrote:
> >
> >> Multi-core is an option, but keep in mind if you go that route you will
> >> need to do two searches to correlate data between the two.
> >>
> >> -Kallin Nagelberg
> >>
> >> -----Original Message-
> >> From: Robert Zotter [mailto:robertzot...@gmail.com]
> >> Sent: Friday, May 28, 2010 12:26 PM
> >> To: solr-user@lucene.apache.org
> >> Subject: Re: Storing different entities in Solr
> >>
> >>
> >> Sounds like you'll want to use a multiple core setup. One core fore each
> >> type
> >> of "document"
> >>
> >> http://wiki.apache.org/solr/CoreAdmin
> >> --
> >> View this message in context:
> >>
> http://lucene.472066.n3.nabble.com/Storing-different-entities-in-Solr-tp852299p852346.html
> >> Sent from the Solr - User mailing list archive at Nabble.com.
> >>
> >
>


Re: Storing different entities in Solr

2010-05-28 Thread David Stuart

Hi,

So for your use case are you wanting to search for a consultant then  
look at all of his or her request or pull both at the same time? In  
both cases one index should suffice. In you define a primary key field  
and use it for both doc types it shouldn't be an issue. Unless your  
dataset in very large it would reduce the overhead of running a  
multicore solution especially in indexing etc


David Stuart

On 28 May 2010, at 18:12, Moazzam Khan  wrote:


Thanks for all your answers guys. Requests and consultants have a many
to many relationship so I can't store request info in a document with
advisorID as the primary key.

Bill's solution and multicore solutions might be what I am looking
for. Bill, will I be able to have 2 primary keys (so I can update and
delete documents)? If yes, can you please give me a link or someting
where I can get more info on this?

Thanks,
Moazzam



On Fri, May 28, 2010 at 11:50 AM, Bill Au  wrote:

You can keep different type of documents in the same index.  If each
document has a type field.  You can restrict your searches to  
specific

type(s) of document by using a filter query, which is very fast and
efficient.

Bill

On Fri, May 28, 2010 at 12:28 PM, Nagelberg, Kallin <
knagelb...@globeandmail.com> wrote:

Multi-core is an option, but keep in mind if you go that route you  
will

need to do two searches to correlate data between the two.

-Kallin Nagelberg

-Original Message-
From: Robert Zotter [mailto:robertzot...@gmail.com]
Sent: Friday, May 28, 2010 12:26 PM
To: solr-user@lucene.apache.org
Subject: Re: Storing different entities in Solr


Sounds like you'll want to use a multiple core setup. One core  
fore each

type
of "document"

http://wiki.apache.org/solr/CoreAdmin
--
View this message in context:
http://lucene.472066.n3.nabble.com/Storing-different-entities-in-Solr-tp852299p852346.html
Sent from the Solr - User mailing list archive at Nabble.com.





Re: Storing different entities in Solr

2010-05-28 Thread Moazzam Khan
Thanks for all your answers guys. Requests and consultants have a many
to many relationship so I can't store request info in a document with
advisorID as the primary key.

Bill's solution and multicore solutions might be what I am looking
for. Bill, will I be able to have 2 primary keys (so I can update and
delete documents)? If yes, can you please give me a link or someting
where I can get more info on this?

Thanks,
Moazzam



On Fri, May 28, 2010 at 11:50 AM, Bill Au  wrote:
> You can keep different type of documents in the same index.  If each
> document has a type field.  You can restrict your searches to specific
> type(s) of document by using a filter query, which is very fast and
> efficient.
>
> Bill
>
> On Fri, May 28, 2010 at 12:28 PM, Nagelberg, Kallin <
> knagelb...@globeandmail.com> wrote:
>
>> Multi-core is an option, but keep in mind if you go that route you will
>> need to do two searches to correlate data between the two.
>>
>> -Kallin Nagelberg
>>
>> -Original Message-
>> From: Robert Zotter [mailto:robertzot...@gmail.com]
>> Sent: Friday, May 28, 2010 12:26 PM
>> To: solr-user@lucene.apache.org
>> Subject: Re: Storing different entities in Solr
>>
>>
>> Sounds like you'll want to use a multiple core setup. One core fore each
>> type
>> of "document"
>>
>> http://wiki.apache.org/solr/CoreAdmin
>> --
>> View this message in context:
>> http://lucene.472066.n3.nabble.com/Storing-different-entities-in-Solr-tp852299p852346.html
>> Sent from the Solr - User mailing list archive at Nabble.com.
>>
>


Re: Storing different entities in Solr

2010-05-28 Thread Bill Au
You can keep different type of documents in the same index.  If each
document has a type field.  You can restrict your searches to specific
type(s) of document by using a filter query, which is very fast and
efficient.

Bill

On Fri, May 28, 2010 at 12:28 PM, Nagelberg, Kallin <
knagelb...@globeandmail.com> wrote:

> Multi-core is an option, but keep in mind if you go that route you will
> need to do two searches to correlate data between the two.
>
> -Kallin Nagelberg
>
> -Original Message-
> From: Robert Zotter [mailto:robertzot...@gmail.com]
> Sent: Friday, May 28, 2010 12:26 PM
> To: solr-user@lucene.apache.org
> Subject: Re: Storing different entities in Solr
>
>
> Sounds like you'll want to use a multiple core setup. One core fore each
> type
> of "document"
>
> http://wiki.apache.org/solr/CoreAdmin
> --
> View this message in context:
> http://lucene.472066.n3.nabble.com/Storing-different-entities-in-Solr-tp852299p852346.html
> Sent from the Solr - User mailing list archive at Nabble.com.
>


RE: Storing different entities in Solr

2010-05-28 Thread Nagelberg, Kallin
Multi-core is an option, but keep in mind if you go that route you will need to 
do two searches to correlate data between the two. 

-Kallin Nagelberg

-Original Message-
From: Robert Zotter [mailto:robertzot...@gmail.com] 
Sent: Friday, May 28, 2010 12:26 PM
To: solr-user@lucene.apache.org
Subject: Re: Storing different entities in Solr


Sounds like you'll want to use a multiple core setup. One core fore each type
of "document"

http://wiki.apache.org/solr/CoreAdmin
-- 
View this message in context: 
http://lucene.472066.n3.nabble.com/Storing-different-entities-in-Solr-tp852299p852346.html
Sent from the Solr - User mailing list archive at Nabble.com.


Re: Storing different entities in Solr

2010-05-28 Thread Robert Zotter

Sounds like you'll want to use a multiple core setup. One core fore each type
of "document"

http://wiki.apache.org/solr/CoreAdmin
-- 
View this message in context: 
http://lucene.472066.n3.nabble.com/Storing-different-entities-in-Solr-tp852299p852346.html
Sent from the Solr - User mailing list archive at Nabble.com.


RE: Storing different entities in Solr

2010-05-28 Thread Nagelberg, Kallin
Good read here: http://mysolr.com/tips/denormalized-data-structure/ .

Are consultation requests unique to each consultant? In that case you could 
represent the request as a Json String and store it as a multi-valued string 
field for each consultant, though that makes querying against requests 
trickier. If you need to search against specific fields in the consultant 
requests than you could try a schema where the consultant is your primary 
entity and have fields like

consultantrequests-field1,
consultantrequests-field2,
consultantrequests-field3

and then one
consultantrequests-fulljson

all multi-valued. You could query against the specific fields, then associate 
to the whole request by searching the json object. It's an approach I've used 
with success. 

-Kallin Nagelberg

-Original Message-
From: Moazzam Khan [mailto:moazz...@gmail.com] 
Sent: Friday, May 28, 2010 12:17 PM
To: solr-user@lucene.apache.org
Subject: Storing different entities in Solr

Hi Guys,

Is there a way to store 2 types of things in Solr. We have a list of
consultants and a list of consultation requests. and I want to store
them as separate documents. Can I do this with one instance of Solr or
do I have to have two instances?

Thanks,

MOazzam