Hi Burnell As we know in the real enterprise application the queries will be always complex than what I have posted here. That time I fear, this approach may not be sufficient. Especially when the query has to handle multiple conditions or joins or more complex operations like that. So I suppose if there is a way by which we can handle "both" just like "user", that will be a more stable approach.
Thanks for your suggestion con Neville Burnell wrote: > > Hi Con, > > I'm not sure if you need the 'both' entity. > > For example, perhaps the following query will work for you to retrieve > both? > > http://localhost:8983/solr/select/?q=bob AND (rowtype:user OR > rowtype:manager)&version=2.2&start=0&rows=10&indent=on > > > >> -----Original Message----- >> From: con [mailto:[EMAIL PROTECTED] >> Sent: Wednesday, 1 October 2008 7:54 PM >> To: solr-user@lucene.apache.org >> Subject: RE: How to select one entity at a time? >> >> >> And finally its almost fine.. :jumping: :jumping: :jumping: >> Thanks Burnell. >> >> My tables are in Oracle DB. >> So based on your suggestions the changes made are: >> 1) In the data-config.xml, >> <entity name="user" transformer="TemplateTransformer" >> query="select * >> from USER"> >> <field column="rowtype" template="user" /> >> </entity> >> <entity name="manager" transformer="TemplateTransformer" >> query="select * >> from MANAGER"> >> <field column="rowtype" template="user" /> >> </entity> >> >> 2) In schema.xml >> <field name="rowtype" type="string" indexed="true" stored="true" >> required="true" /> >> >> And when I call http://localhost:8983/solr/select/?q=(bob AND >> rowtype:user)&version=2.2&start=0&rows=10&indent=on >> only the user entity's values are returned and if I use manager, only >> the >> manager's values will be returned... >> It almost solved my issues.(95%). >> >> But I am struck at one point. >> In the data-config.xml I have an entry like, >> >> <entity name="both" transformer="TemplateTransformer" >> query="select * >> from USER , MANAGER where USER.userID = MANAGER.userID "> >> <field column="rowtype" template="both" /> >> </entity> >> when i try to search like, http://localhost:8983/solr/select/?q=(150 >> AND >> rowtype:both)&version=2.2&start=0&rows=10&indent=on >> will return zero responces. >> At the same time if I run >> http://localhost:8983/solr/select/?q=150&version=2.2&start=0&rows=10&in >> dent=on >> It will get values from both USER and MANAGER satisfying the condition. >> Is there any difference in applying transformer in such type of >> queries. >> >> Once again, >> Thanks a lot:handshake: >> >> Expecting reply >> con >> >> >> >> >> >> >> >> >> >> Neville Burnell wrote: >> > >> > BTW, You will also need to configure your schema.xml to index [and >> store?] >> > the rowtype attribute: >> > >> > <field name="rowtype" type="string" indexed="true" stored="true" >> > required="true" /> >> > >> > Or alternatively change rowtype to be say rowtype_s to take advantage >> of >> > Solr's dynamic field definitions. >> > >> >> -----Original Message----- >> >> From: Neville Burnell [mailto:[EMAIL PROTECTED] >> >> Sent: Wednesday, 1 October 2008 6:06 PM >> >> To: solr-user@lucene.apache.org >> >> Subject: RE: How to select one entity at a time? >> >> >> >> Hi Con, >> >> >> >> what RDBMS are you using? >> >> >> >> This looks like a SQL syntax problem, perhaps the 'literal as >> column' >> >> is not right for your setup [while it works for my MS SQL Server]. >> >> >> >> An alternative to supplying the "rowtype" attribute as a literal in >> the >> >> SQL clause is to use a Solr DIH Template Transformer >> >> http://wiki.apache.org/solr/DataImportHandler#transformer >> >> >> >> This should allow you to keep the working SQL. For example >> >> >> >> <entity name="user" transformer="TemplateTransformer" query="select >> * >> >> from USER"> >> >> <field column="rowtype" template="user" /> >> >> </entity> >> >> >> >> >> >> > -----Original Message----- >> >> > From: con [mailto:[EMAIL PROTECTED] >> >> > Sent: Wednesday, 1 October 2008 5:48 PM >> >> > To: solr-user@lucene.apache.org >> >> > Subject: RE: How to select one entity at a time? >> >> > >> >> > >> >> > That is exactly what my problem is.:handshake: >> >> > Thanks for you reply. >> >> > >> >> > But I tried your suggestion: >> >> > Updated the data-config.xml as; >> >> > >> >> > <entity name="user" query="select 'user' as rowtype, * from >> >> > USER"></entity> >> >> > <entity name="manager" query="select 'manager' as rowtype, * from >> >> > MANAGERS"></entity> >> >> > >> >> > But when I perform the full import itself, it is throwing >> exception, >> >> > >> >> > SEVERE: Exception while processing: user document : >> >> > SolrInputDocumnt[{}] >> >> > org.apache.solr.handler.dataimport.DataImportHandlerException: >> >> > Unable to >> >> > execute >> >> > query: select 'user' as rowtype,* from USER Processing >> Document # >> >> 1 >> >> > ....... >> >> > So, as expected, when I go to search it is giving- undefined field >> >> > rowtype- >> >> > error.!!! >> >> > Do I need to update any other files or fields? >> >> > >> >> > I am happy that it worked for you...:jumping::jumping: >> >> > Looking forward for your reply >> >> > Thanks >> >> > con >> >> > >> >> > >> >> > >> >> > >> >> > Neville Burnell wrote: >> >> > > >> >> > > Hi, >> >> > > >> >> > >> But while performing a search, if I want to search only the >> data >> >> > from >> >> > >> USER table, how can I acheive it. >> >> > > >> >> > > In my app+solr index, we solved this problem by "tagging" >> entities >> >> > with a >> >> > > "rowtype" attribute, something like this: >> >> > > >> >> > > <entity name="user" query="select 'user' as rowtype, * from >> >> > > USER"></entity> >> >> > > <entity name="manager" query="select 'manager' as rowtype, * >> from >> >> > > MANAGERS"></entity> >> >> > > >> >> > > Then your 'users' only query becomes something like: >> >> > > >> >> > > http://localhost:8983/solr/select/?q=(bob AND >> >> > > rowtype:user)&version=2.2&start=0&rows=10&indent=on&wt=json >> >> > > >> >> > > Hope this helps >> >> > > >> >> > > >> >> > > >> >> > >> -----Original Message----- >> >> > >> From: con [mailto:[EMAIL PROTECTED] >> >> > >> Sent: Wednesday, 1 October 2008 4:54 PM >> >> > >> To: solr-user@lucene.apache.org >> >> > >> Subject: Re: How to select one entity at a time? >> >> > >> >> >> > >> >> >> > >> Of course I agree. >> >> > >> But while performing a search, if I want to search only the >> data >> >> > from >> >> > >> USER >> >> > >> table, how can I acheive it. >> >> > >> >> >> > >> Suppose I have a user name bob in both USER and MANAGER tables. >> So >> >> > when >> >> > >> I >> >> > >> perform http://localhost:8983/solr/dataimport?command=full- >> import >> >> , >> >> > all >> >> > >> the >> >> > >> USER and MANAGER values will get indexed. >> >> > >> And when i do a search like, >> >> > >> >> >> > >> >> >> http://localhost:8983/solr/select/?q=bob&version=2.2&start=0&rows=10&in >> >> > >> dent=on&wt=json >> >> > >> it will return all the values indexed from both USER and >> MANAGER >> >> > table. >> >> > >> But I want only the data indexed from either USER table or >> MANAGER >> >> > >> table at >> >> > >> a time based on the end user's choice. How can I achieve it. >> >> > >> >> >> > >> Thanks for your reply >> >> > >> con >> >> > >> >> >> > >> >> >> > >> Noble Paul നോബിള് नोब्ळ् wrote: >> >> > >> > >> >> > >> > The entity and the select query has no relationship >> >> > >> > The entity comes into picture when you do a dataimport >> >> > >> > >> >> > >> > eg: >> >> > >> > http://localhost:8983/solr/dataimport?command=full- >> >> > import&enity=user >> >> > >> > >> >> > >> > This is an indexing operation >> >> > >> > >> >> > >> > On Wed, Oct 1, 2008 at 11:26 AM, con <[EMAIL PROTECTED]> >> wrote: >> >> > >> >> >> >> > >> >> Hi guys, >> >> > >> >> In the URL, http://localhost:8983/solr/select/?q= >> >> > >> >> XXXX:bob&version=2.2&start=0&rows=10&indent=on&wt=json >> >> > >> >> >> >> > >> >> q=XXXX: applies to a field and not to an entity. So If I >> have 3 >> >> > >> entities >> >> > >> >> like: >> >> > >> >> >> >> > >> >> <dataConfig> >> >> > >> >> <dataSource **********/> >> >> > >> >> <document> >> >> > >> >> <entity name="user" query="select * >> from >> >> > >> USER"> >> >> > >> >> </entity> >> >> > >> >> >> >> > >> >> <entity name="manager" query="select >> * >> >> > from >> >> > >> >> MANAGERS"> >> >> > >> >> </entity> >> >> > >> >> >> >> > >> >> <entity name="both" query="select * >> from >> >> > >> >> MANAGERS,USER where MANAGERS.userID= USER .userID"> >> >> > >> >> </entity> >> >> > >> >> </document> >> >> > >> >> </dataConfig> >> >> > >> >> >> >> > >> >> I cannot invoke the entity, 'user', just like the above url. >> i >> >> > went >> >> > >> >> through >> >> > >> >> the possible arguments but didnt found a way to invoke an >> >> entity. >> >> > Is >> >> > >> >> there a >> >> > >> >> way for this purpose. >> >> > >> >> ragards >> >> > >> >> con >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> con wrote: >> >> > >> >>> >> >> > >> >>> Thanks Everybody. >> >> > >> >>> I have went through the wiki and some other docs. Actually >> I >> >> > have a >> >> > >> >>> tight >> >> > >> >>> schedule and I have to look into various other things along >> >> with >> >> > >> this. >> >> > >> >>> Currently I am looking into rebuilding solr by writing a >> >> wrapper >> >> > >> class. >> >> > >> >>> I will update you with more meaningful questions soon.. >> >> > >> >>> thanks and regards. >> >> > >> >>> con >> >> > >> >>> >> >> > >> >>> >> >> > >> >>> Norberto Meijome-6 wrote: >> >> > >> >>>> >> >> > >> >>>> On Fri, 26 Sep 2008 02:35:18 -0700 (PDT) >> >> > >> >>>> con <[EMAIL PROTECTED]> wrote: >> >> > >> >>>> >> >> > >> >>>>> What you meant is correct only. Please excuse for that I >> am >> >> > new >> >> > >> to >> >> > >> >>>>> solr. >> >> > >> >>>>> :-( >> >> > >> >>>> >> >> > >> >>>> Con, have a read here : >> >> > >> >>>> >> >> > >> >>>> http://www.ibm.com/developerworks/java/library/j-solr1/ >> >> > >> >>>> >> >> > >> >>>> it helped me pick up the basics a while back. it refers to >> >> 1.2, >> >> > >> but the >> >> > >> >>>> core concepts are relevant to 1.3 too. >> >> > >> >>>> >> >> > >> >>>> b >> >> > >> >>>> _________________________ >> >> > >> >>>> {Beto|Norberto|Numard} Meijome >> >> > >> >>>> >> >> > >> >>>> Hildebrant's Principle: >> >> > >> >>>> If you don't know where you are going, >> >> > >> >>>> any road will get you there. >> >> > >> >>>> >> >> > >> >>>> I speak for myself, not my employer. Contents may be hot. >> >> > Slippery >> >> > >> when >> >> > >> >>>> wet. Reading disclaimers makes you go blind. Writing them >> is >> >> > >> worse. You >> >> > >> >>>> have been Warned. >> >> > >> >>>> >> >> > >> >>>> >> >> > >> >>> >> >> > >> >>> >> >> > >> >> >> >> > >> >> -- >> >> > >> >> View this message in context: >> >> > >> >> http://www.nabble.com/How-to-select-one-entity-at-a-time-- >> >> > >> tp19668759p19754869.html >> >> > >> >> Sent from the Solr - User mailing list archive at >> Nabble.com. >> >> > >> >> >> >> > >> >> >> >> > >> > >> >> > >> > >> >> > >> > >> >> > >> > -- >> >> > >> > --Noble Paul >> >> > >> > >> >> > >> > >> >> > >> >> >> > >> -- >> >> > >> View this message in context: http://www.nabble.com/How-to- >> select- >> >> > one- >> >> > >> entity-at-a-time--tp19668759p19755437.html >> >> > >> Sent from the Solr - User mailing list archive at Nabble.com. >> >> > > >> >> > > >> >> > > >> >> > >> >> > -- >> >> > View this message in context: http://www.nabble.com/How-to-select- >> >> one- >> >> > entity-at-a-time--tp19668759p19755987.html >> >> > Sent from the Solr - User mailing list archive at Nabble.com. >> > >> > >> > >> :drunk::drunk::jumping::jumping: >> -- >> View this message in context: http://www.nabble.com/How-to-select-one- >> entity-at-a-time--tp19668759p19757360.html >> Sent from the Solr - User mailing list archive at Nabble.com. > > > -- View this message in context: http://www.nabble.com/How-to-select-one-entity-at-a-time--tp19668759p19792225.html Sent from the Solr - User mailing list archive at Nabble.com.