| Lucene-QueryParser documentation | view source | Contained in the Lucene-QueryParser distribution. |
Lucene::QueryParser - Turn a Lucene query into a Perl data structure
use Lucene::QueryParser;
my $structure = parse_query("red and yellow and -(coat:pink and green)");
$structure will be:
[ { query => 'TERM', type => 'NORMAL', term => 'red' },
{ query => 'TERM', type => 'NORMAL', term => 'yellow' },
{ subquery => [
{ query => 'TERM', type => 'NORMAL', term => 'pink', field => 'coat' },
{ query => 'TERM', type => 'NORMAL', term => 'green' }
], query => 'SUBQUERY', type => 'PROHIBITED'
}
]
This module parses a Lucene query, as defined by http://lucene.sourceforge.net/cgi-bin/faq/faqmanager.cgi?file=chapter.search&toc=faq#q5
It deals with fields, types, phrases, subqueries, and so on; everything
handled by the SimpleQuery class in Lucene. The data structure is similar
to the one given above, and is pretty self-explanatory.
The other function, deparse_query turns such a data structure back into
a Lucene query string. This is useful if you've just been mucking about
with the data.
Note for people using Plucene: the big arrayref and the hashes in the
output of parse_query are actually objects. They're not
Plucene::Query objects, because then everyone who wanted to do search
queries would have to pull in Plucene, which is a bit unfair. However,
they can be turned into Plucene::Querys by calling to_plucene on
them. The argument to to_plucene should be the default field to
search if none is supplied.
Exports the parse_query and deparse_query functions.
Simon Cozens, <simon@kasei.com>
Copyright 2003 by Kasei
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Lucene-QueryParser documentation | view source | Contained in the Lucene-QueryParser distribution. |