Print

Print


On Nov 27, 2006, at 5:49 PM, Andrew Nagy wrote:
> My only concern about lucene is the lack of a standard query language.
> I went down the native XML database path because of XQuery and XSL,
> does
> something like lucene and solr offer a strong query language?  Is it a
> standard?  What if someone developed a kick ass text indexer in 2
> years
> that totally blows lucene out of the water, would you easily be
> able to
> switch systems?

"What if" games are mostly just guessing games in the high tech
world.  Agility is the trait our projects need.  Software is just
that... soft.  And malleable.  Sure, we can code ourselves into a
corner, but generally we can code ourselves right back out of it
too.  If software is built with decent separation of concerns, we can
adapt to changes readily.

Specifically to your concern about a "standard" query language, I
prefer to think of things from a users perspective.  A user does not
type in XQuery syntax, so at some point the system has to translate a
user entered expression into something the underlying search engine
understands.  Lucene, and thus Solr, support the syntax already
mentioned here (Google-like syntax), and there is also a contrib
module to Lucene that XMLifies the Lucene query syntax (and then
some), called the xml-query-parser:

        <http://svn.apache.org/repos/asf/lucene/java/trunk/contrib/xml-query-
parser/>

Eventually this will integrated into Solr.  So, as long as you can
parse a user entered query into some type of data structure, you can
convert it to either of the Lucene supported syntaxes (or directly to
a Query object if you're coding in Java), or to whatever pie in the
sky system that comes along in the future.

I'm looking forward to more discussion on this topic, as it is one
that I hear most often as a negative to Lucene around my neck of the
woods, and the "standard" what-if scenario is used to choose inferior
search engine technologies sadly.

        Erik