Requesting Solr experts again to suggest some solutions to my above problem as i am not able to solve this.
On Tue, May 12, 2015 at 11:04 AM, Naresh Yadav <nyadav....@gmail.com> wrote: > Thanks Andrew, You got my problem precisely But solutions you suggested > may not work for me. > > In my API i get only list of tags authorized i.e [T1, T2, T3] and based on > that only i need to construct my Solr query. > So first solution with NOT (T4 OR T5) will not work. > > In real case tag ids T1, T2 are UUID's, so range query also will not work > as i have no control on order of these ids. > > Looking for more suggestions ?? > > Thanks > Naresh > > On Mon, May 11, 2015 at 10:05 PM, Andrew Chillrud <achill...@opentext.com> > wrote: > >> Based on his example, it sounds like Naresh not only wants the tags field >> to contain at least one of the values [T1, T2, T3] but also wants to >> exclude documents that contain a tag other than T1, T2, or T3 (Doc3 should >> not be retrieved). >> >> If the set of possible values in the tags field is limited and known, you >> could use a NOT (or '-') clause to accomplish this. If there were 5 >> possible tag values: >> >> tags:(( T1 OR T2 OR T3) NOT (T4 OR T5)) >> >> However this doesn't seem practical if the number of possible values is >> large or unlimited. Perhaps something could be done with range queries: >> >> tags:(( T1 OR T2 OR T3) NOT ([* TO T1} OR {T1 TO T2} OR {T3 to * ])) >> >> however this would require whatever is constructing the query to be aware >> of the lexical ordering of the terms in the index. Maybe there are more >> elegant solutions, but I am not aware of them. >> >> - Andy - >> >> -----Original Message----- >> From: sujitatgt...@gmail.com [mailto:sujitatgt...@gmail.com] On Behalf >> Of Sujit Pal >> Sent: Monday, May 11, 2015 10:40 AM >> To: solr-user@lucene.apache.org >> Subject: Re: Solr query which return only those docs whose all tokens are >> from given list >> >> Hi Naresh, >> >> Couldn't you could just model this as an OR query since your requirement >> is at least one (but can be more than one), ie: >> >> tags:T1 tags:T2 tags:T3 >> >> -sujit >> >> >> On Mon, May 11, 2015 at 4:14 AM, Naresh Yadav <nyadav....@gmail.com> >> wrote: >> >> > Hi all, >> > >> > Also asked this here : http://stackoverflow.com/questions/30166116 >> > >> > For example i have SOLR docs in which tags field is indexed : >> > >> > Doc1 -> tags:T1 T2 >> > >> > Doc2 -> tags:T1 T3 >> > >> > Doc3 -> tags:T1 T4 >> > >> > Doc4 -> tags:T1 T2 T3 >> > >> > Query1 : get all docs with "tags:T1 AND tags:T3" then it works and >> > will give Doc2 and Doc4 >> > >> > Query2 : get all docs whose tags must be one of these [T1, T2, T3] >> > Expected is : Doc1, Doc2, Doc4 >> > >> > How to model Query2 in Solr ?? Please help me on this ? >> > >> > > > > >