Erik Hatcher wrote:

On Mar 8, 2005, at 4:11 AM, sergiu gordea wrote:

In our project I save search strings, generated with query.toString in the database and I reconstruct the Query at runtime.
I would appreciate if the new QueryParser will pass the following assert:


Query query = QueryParser.parse(queryString, analyzer);
Query query2 =  QueryParser.parse(query.toString(), analyzer);
assertEquals(query.toString(), query2.toString());

I think this might be a usefull test case ....


I agree that this is a nice ideal, but it is unrealistic in the general sense. A custom analyzer could easily break this. I suspect there are other cases where this would break even with a plain SimpleAnalyzer.

Erik


I understand that this is a feature that requires a lot of attention, but in my case it is a very usefull one. Maybe the Query String that I save in the database will
help you understand how usefull it is for me. Of course, I use just StandardAnalyzer as a singleton in our project.
Anyway .. as I put the same analyzer in both classses, the test should pass.


So .. here is an example of how I parse a simple query string provided by a user ...

the user checks a few flags and writes "test ko AND NOT bo"
and the resulting query.toString() is saved in the database:

+(+(subject:test description:test keywordsTerms:test koProperties:test attachmentData:test) +(subject:ko description:ko keywordsTerms:ko koProperties:ko attachmentData:ko) -(subject:bo* description:bo* keywordsTerms:bo* koProperties:bo* attachmentData:bo*)) +creator:2 +classType:package.share.om.knowledgeobject +skillLevel:0 +(keywords:1000 keywords:1020)

I think you agree that is better to be saved in the database instead of creating a
CustomQuery class that implements Serializable and save it in the database.


Until now I haven't had any problem to reconstruct the Query from the above string. I think this feature really gives value to Query class, and saves a lot development
time for many of lucene users.
Maybe I'm pushing to much with this functionality ... but if I tell you that before i used BooleanQueries to build this query String, it was build up with
regular string concatenation, in method with more then 200 lines of code ...



All the best,

Sergiu





--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to