Constantijn,

I am aware of this and we have already  increased max  boolean clauses  to
<3500> from the default <1200>  for all our 200+ instances .

But the requirement is that  we could have  <n>  number of products running
to several thousands for each of the instances and since <n> is not defined
, this will not scale considering <n>  could be different for each of our
instances and also the performance impact of so many Boolean clauses.

Regards
Sujatha



On Fri, Jun 17, 2011 at 2:58 PM, Constantijn Visinescu
<baeli...@gmail.com>wrote:

> Just to chip in my 2 cents:
>
> You know you can increase the max number of boolean clauses in the
> configuration files?
> Depending on your situation it might not be a permanent fix, but it
> could provide some instant relief.
>
> Constantijn
>
>
> On Fri, Jun 17, 2011 at 11:19 AM, Peter Sturge <peter.stu...@gmail.com>
> wrote:
> > You'll need to be a bit careful using joins, as the performance hit
> > can be significant if you have lots of cross-referencing to do, which
> > I believe you would given your scenario.
> >
> > Your table could be setup to use the username as the key (for fast
> > lookup), then map these to your own data class or collection or
> > similar to hold your other information: products, expiry etc.
> > By using your own data class, it's then easy to extend it later if you
> > want to add additional parameters. (for example: HashMap<String,
> > MyDataClass>)
> >
> > When a search comes in, the user is looked up to retrieve the data
> > class, then its contents (as defined by you) is examined and the query
> > is processed/filtered appropriately.
> >
> > You'll need a bootstrap mechanism for populating the list in the first
> > place. One thing worth looking at is lazy loading - i.e. the first
> > time a user does a search (you lookup the user in the table, and it
> > isn't there), you load the data class (maybe from your DB, a file, or
> > index), then ad it to the table. This is good if you have 10's of
> > thousands or millions of users, but only a handful are actually
> > searching, some perhaps very rarely.
> >
> > If you do have millions of users, and your data class has heavy
> > requirements (e.g. many thousands of products + info etc.), you might
> > want to 'time-out' in-memory table entries, if the table gets really
> > huge - it depends on the usage of your system. (you can run a
> > synchronized cleanup thread to do this if you deemed it necessary).
> >
> >
> > On Fri, Jun 17, 2011 at 6:06 AM, Sujatha Arun <suja.a...@gmail.com>
> wrote:
> >> Alexey,
> >>
> >> Do you mean that we  have current Index as it is and have a separate
> core
> >> which  has only the user-id ,product-id relation and at while querying
> ,do a
> >> join between the two cores based on the user-id.
> >>
> >>
> >> This would involve us to Index/delete the product  as and when the user
> >> subscription for a product changes ,This would involve some amount of
> >> latency if the Indexing (we have a queue system for Indexing across the
> >> various instances) or deletion is delayed
> >>
> >> IF we want to go ahead with this solution ,We currently are using solr
> 1.3
> >> , so  is this functionality available as a patch for solr 1.3?Would it
> be
> >> possible to  do with a separate Index  instead of a core ,then I can
> create
> >> only one  Index common for all our instances and then use this instance
> to
> >> do the join.
> >>
> >> Thanks
> >> Sujatha
> >>
> >> On Thu, Jun 16, 2011 at 9:27 PM, Alexey Serba <ase...@gmail.com> wrote:
> >>
> >>> > So a search for a product once the user logs in and searches for only
> the
> >>> > products that he has access to Will translate to something like this
> .
> >>> ,the
> >>> > product ids are obtained form the db  for a particular user and can
> run
> >>> > into  n  number.
> >>> >
> >>> > <search term> &fq=product_id(100 10001  ......n number)
> >>> >
> >>> > but we are currently running into too many Boolean expansion error
> .We
> >>> are
> >>> > not able to tie the user also into roles as each user is mainly any
> one
> >>> who
> >>> > comes to site and purchases a product .
> >>>
> >>> I'm wondering if new trunk Solr join functionality can help here.
> >>>
> >>> * http://wiki.apache.org/solr/Join
> >>>
> >>> In theory you can index your products (product_id, ...) and
> >>> user_id-product many-to-many relation (user_product_id, user_id) into
> >>> signle/different cores and then do join, like
> >>> f=search terms&fq={!join from=product_id
> to=user_product_id}user_id:10101
> >>>
> >>> But I haven't tried that, so I'm just speculating.
> >>>
> >>
> >
>

Reply via email to