For the query I am using *newQ.toString* equals *queryFrom.ToString

*well, what i am trying to accomplish is that I need to search an index
(quite often say interval of around 15 mins) and the query depends on other
activities done by the user till that point of a time. but i don't want the
query to be changed for a particular time period. (say 2 days)  i want to
store the query so that i can use it for my search without being affected by
current or immediate activities from user. once the query becomes 2 day old
then i'll reconstruct the query considering the activities happened during
the last two days.
  Is there a better approach?

On Jan 17, 2008 9:08 PM, Erick Erickson <[EMAIL PROTECTED]> wrote:

> I just thought of an interesting test for whether
> toString() is reasonable. You could log/flag
> when the reloaded query differs. I.e.
> String queryFromToString;  // your stored form
> Query newQ = parser.parse(queryFromToString);
> if (newQ.toString != queryFromToString) {
>  log some stuff or throw an exception or....
> }
>
> That'd provide you a reality check...
>
> Erick
>
> On Jan 17, 2008 10:32 AM, Erick Erickson <[EMAIL PROTECTED]> wrote:
>
> > I believe, but I'm not sure, that query and newQuery
> > are not guaranteed to be equivalent. So I'd be cautious
> > about this approach. But if it works for you....
> >
> > I'm assuming that you're somehow programmatically
> > constructing the query and therefore can't just
> > store the original string. I'd *always* store the
> > original rather than a processed query if I could,
> > just on general principles.
> >
> > What is it that you're trying to accomplish anyway?
> > Perhaps there's a better approach....
> >
> > Erick
> >
> >
> > On Jan 17, 2008 6:07 AM, prabin meitei <[EMAIL PROTECTED]> wrote:
> >
> > > Hi Erick,
> > >   Thanks for your response. I have tried the folowing way and seems to
> > > be
> > > working. Tell me if there is any problem with the approach.
> > >
> > > String str = query.toString();
> > > QueryParser parser = new QueryParser("", new StandardAnalyzer);
> > > Query newQuery = parser.parse(str);
> > >
> > > now use *newQuery* for making queries
> > >
> > >
> > > I understand that in the constructor of QueryParser it takes default
> > > field
> > > and a analyzer. If I put a blank field it seems to work. Putting null
> > > gives
> > > a null pointer exception.
> > >
> > > Regards,
> > > Prabin
> > >
> > >
> > >
> > > On Jan 16, 2008 7:44 PM, Erick Erickson < [EMAIL PROTECTED]>
> > > wrote:
> > >
> > > > As I remember from various threads, toString is more of
> > > > a debugging aid and you cannot completely rely on the
> > > > transformation from a parsed query -> tostring -> parsed query
> > > > to be reliable. But this is "something I remember", so take
> > > > it with a grain of salt (you might want to search the mail
> > > > archive to see if my memory is correct).
> > > >
> > > > That said, use BooleanQuery to add as many clauses in
> > > > as many ways as you want.
> > > >
> > > > Actually, I don't know how I'd go about storing a programmatically
> > > > constructed query, I'd sure like to know if there's a way. You could
> > > > certainly store the original query if you were taking user input and
> > > > parsing it...
> > > >
> > > > Best
> > > > Erick
> > > >
> > > > On Jan 16, 2008 4:22 AM, prabin meitei <[EMAIL PROTECTED]>
> > > wrote:
> > > >
> > > > > Hi ,
> > > > >    I want to construct a query from string. how can I do it??
> > >  Actually
> > > > i
> > > > > saved a query(a boolean query) as string (using query.toString()).
> > > > > Is there a way to reconstruct the query from the string i saved?
> How
> > > can
> > > > i
> > > > > add more clauses to the  reconstructed query?
> > > > > Thanks in advance.
> > > > >
> > > > > Prabin
> > > > >
> > > >
> > >
> >
> >
>

Reply via email to