NAME

Parqus - parse a search query string

VERSION

version 0.05

SYNOPSIS

use Parqus;
my $parser = Parqus->new( keywords => [ qw/name title/ ] );
my $res;

$res = $parser->process('title:"bar baz" foo title: meh');
# {
#   words    => ['foo'],
#   keywords => {
#                 title => [
#                            'bar baz',
#                            'meh',
#                          ]
#               },
# }

$res = $parser->process('title:"bar baz" title: meh');
# {
#   keywords => {
#                 title => [
#                            'bar baz',
#                            'meh',
#                          ]
#               },
# }

$res = $parser->process('foo bar baz');
# {
#   words => ['foo', 'bar', 'baz'],
# }

$res = $parser->process('tag: inactive');
# {
#   errors => {
#               'Parse Error: Invalid search query.'
#             },
# }

DESCRIPTION

Parqus (PArse QUery String) parses a search-engine like string into a perl structure

NEW

my $parser = Parqus->new( %options );

OPTIONS

keywords

keywords => [ qw/name title/ ]

the list of keywords you want to recognise.

value_regex

regular expression to capture words. (default: [qr![\w-]+!xms])

string_delimiters

array of characters used to delimit strings. (default: ['"])

SEE ALSO

Regexp::Grammars, Search::Query, Search::Query::Dialect::DBIxClass

AUTHOR

David Schmidt <davewood@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2020 by David Schmidt.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.