NAME
Sphinx::XML::Pipe2 - generates xml to feed xmlpipe2 of Sphinx Search
VERSION
version 0.002
SYNOPSIS
Example script which creates XML data for Sphinx Search xmlpipe2 data source of some documents in directories specified as script arguments
use v5.14;
use Sphinx::XML::Pipe2;
use File::Find;
binmode STDIN, ":encoding(utf8)";
binmode STDOUT, ":encoding(utf8)"
my $p = Sphinx::XML::Pipe2->new;
$p->attr('size', 'int');
$p->attr('type', 'str2ordinal');
$p->field('content');
$p->field('path');
my $i = 0;
find( sub {
my $file = $_;
if (-f -r $file && (my $size = -s $file) && $file =~ /\.(html?|txt|rtf)?$/i) {
$p->add(
$i, # document id
$size, # attributes in declaration order, i.e. 'size'
lc($1), # 'type'
do { local( @ARGV, $/ ) = $name; <> }, # then fields in declaration order, i.e. 'content'
$File::Find::name # 'path'
);
}
}, @ARGV);
print $p->xml;
METHODS
attr($name, $type, $bits, $default)
Declare document attribute. $name and $type is mandatory.
field($name, $attr)
Declare document field. $name is mandatory.
add($id, @attr, @field)
Add document. $id - must be integer, @attr and @field must be be in declaration order.
xml
Returns XML data suitable for xmlpipe2 data source.
process
Returns XML::LibXML::Document
NOTICE
Experimental state
SEE ALSO
Sphinx Search xmlpipe2 data source
AUTHOR
Yegor Korablev <egor@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Yegor Korablev.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.