On Thu, Sep 23, 2010 at 5:54 PM, Rob Ashton <robash
...@codeofrob.com> wrote:
> Anyway, moving on and ignoring the above drivel - I've remembered how
> RavenDB works now...
> An implementation of parametrized dynamic queries could
> - Use the above to get the documents, put the results in a temporary
> lucene index, wait for the indexing to occur, query that lucene index
> and then delete the lucene index
> - If the same query is called a number of times in a certain time
> period, an actual index could be created and queried instead (given a
> unique name based on the fields being queried)
> - If the query isn't invoked after a set amount of time, it would be
> deleted
> This would potentially have less overhead than creating a proper index
> each time and waiting for the system to index the data?
> My alternative suggestion is to create an index for all documents,
> full of dynamic fields and query that too, but that has the
> disadvantage that it works completely differently to how the rest of
> RavenDB functions
> On Sep 23, 4:47 pm, Rob Ashton <robash...@CodeOfRob.com> wrote:
> > So basically ignore my question entirely because I'm talking nonsense
> > =)
> > On Sep 23, 4:46 pm, Rob Ashton <robash...@CodeOfRob.com> wrote:
> > > Okay, I get you - so this is just a nice way of debugging the contents
> > > of the document store via linq queries
> > > I think for *that* purpose, using indexes would be a folly, but it'll
> > > need to be pointed out quite loudly that this is what it does and that
> > > it's very different to what you'd get from an actual index.
> > > Also yes yes, you're quite right - this is what you meant by
> > > parameters not being there, I didn't read your post properly.
> > > On Sep 23, 4:41 pm, Ayende Rahien <aye...@ayende.com> wrote:
> > > > Yes, the idea here is that the output of an ad hoc query is whatever
> the
> > > > output of the linq query is.
> > > > I am not sure HOW we could use indexes for that, or why we would want
> that.
> > > > With indexes, in much the same way, we take the output from the linq
> query
> > > > and put it in Lucene.
> > > > Here, we are simply returning the output.
> > > > I am not sure that I understand what you mean by raw query passed in.
> > > > What would YOU consider for querying on dynamic indexes?
> > > > On Thu, Sep 23, 2010 at 5:31 PM, Rob Ashton <robash...@codeofrob.com>
> wrote:
> > > > > Okay, I've been through and checked it out and before I go ahead
> and
> > > > > create a system along the lines we discussed on Twitter I want to
> > > > > check a few facts about this particular implementation of dynamic
> > > > > queries.
> > > > > In order to avoid memory leaks, you're creating a new app domain
> which
> > > > > contains a query cache, when a LinearQuery is ran against the
> > > > > QueryRunner that query is stored in the cache, and when the query
> > > > > runner contains 1024 queries, the app domain is flushed and the
> > > > > process starts all over again.
> > > > > This query runner is passed a IRemoteStorage, from which it
> retrieves
> > > > > the documents in batches, and enumerates through them plucking out
> the
> > > > > docs that meet the requirements of the query passed in. As far as I
> > > > > can see, this doesn't use Lucene indexes, but the raw query passed
> in?
> > > > > Am I understanding that correctly? Does that mean you potentially
> will
> > > > > get different results from traditional indexes?
> > > > > ---
> > > > > I was planning on doing the dynamic index system as a bundle, and
> > > > > actually creating/destroying indexes (for all queries, potentially
> > > > > taking a long time the first time a query is invoked)- is this
> going
> > > > > to be a problem? My initial plan was to tack onto whatever you had
> > > > > already written, but if Lucene indexes aren't being used for ad-hoc
> > > > > queries then that plan is scuppered (I think)