Search code examples
javasqllucenefull-text-searchsearch-engine

Interpret Queries of Lucene


I was wondering if there is any way to interpret Queries of Lucene in simple terms?

For example :

Example # 1:

Input Query - name:John

Output - Interpreted as : Find all entries where attribute "name" is equal "John".

Example # 2:

Input Query - name:John AND phoneNumber:1234

Output - Interpreted as : Find all entries where attribute "name" is equal to "John" and attribute "phoneNumber" is equal to "1234".

Any tutorials in this regard will be helpful,

Thanks


Solution

  • The Lucene documentation does a pretty decent job in explaining basic queries and their interpretation. It seems as though that's all you're looking for; once you get into some of the more advanced query types, it gets hairy, but the documentation should always be your first stop; it's fairly comprehensive.

    Edit: Ah, you want automated query explanation. I don't know of any that currently exist; I think you'll have to write your own, but if you're starting with standard QueryParser Syntax, I think the best input for your interpreter would be the output of QueryParser.parse(). That breaks down the free text into Lucene query objects that shouldn't be too difficult to wrap in a utility function that outputs a plain-English string for each one.