Lucene::QueryParser.3pm

Langue: en

Version: 2008-04-19 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

Lucene::QueryParser - Turn a Lucene query into a Perl data structure

SYNOPSIS

   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' 
    }
  ]
 
 

DESCRIPTION

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.

PLUCENE

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::Query"s by calling "to_plucene" on them. The argument to "to_plucene" should be the default field to search if none is supplied.

EXPORT

Exports the "parse_query" and "deparse_query" functions.

AUTHOR

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.