This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
commit 957c862c7b71e9b4106c7beee746d4957f418d6e
tree f44c896bce2c8ee5687b40c941f5b8eb56d5e464
parent 7224a4d9de58eeb028e64f0fecea013bd9f77be9
tree f44c896bce2c8ee5687b40c941f5b8eb56d5e464
parent 7224a4d9de58eeb028e64f0fecea013bd9f77be9
| name | age | message | |
|---|---|---|---|
| |
.gitignore | ||
| |
Changes | ||
| |
MANIFEST | ||
| |
Makefile.PL | ||
| |
README | ||
| |
lib/ | ||
| |
t/ |
README
NAME
DBIx::Class::PhoneticSearch - Phonetic search with DBIC
SYNOPSIS
package MySchema::User;
use base 'DBIx::Class';
__PACKAGE__->load_components(qw(PhoneticSearch Core));
__PACKAGE__->table('user');
__PACKAGE__->add_columns(
id => { data_type => 'integer', auto_increment => 1, },
surname => { data_type => 'character varying',
phonetic_search => 1 },
forename => { data_type => 'character varying',
phonetic_search => { algorithm => 'Koeln',
no_indices => 1 } },
);
__PACKAGE__->set_primary_key('id');
__PACKAGE__->resultset_class('DBIx::Class::ResultSet::PhoneticSearch');
# somewhere else
$rs = $schema->resultset('User');
$rs->create({ forename => 'John', surname => 'Night' });
$rs->search_phonetic({ forename => 'Jon' })->first->forename; # John
$rs->search_phonetic({ surname => 'Knight' })->first->surname; # Night
$rs->search_phonetic({ forename => 'Jon',
surname => 'Knight' })->first->surname; # Night
$rs->search_phonetic([ surname => 'Smith' ,
surname => 'Knight' ])->first->surname; # Night (ORed)
DESCRIPTION
This components allows for phonetic search of columns. If you add the
`phonetic_search' attribute to a column, this component will add an
extra column to the result class which is basically an index of the
value based on its pronunciation. Every time the column is updated, the
phonetic column is set as well. It uses Text::Phonetic to compute the
phonetic representation of the value in that column. Use search_phonetic
to search for rows which sound similar to a given value.
The name of the phonetic column consists of the original column name and
the algorithm used:
$column + _phonetic_ + $algorithm
The above example will require two additional columns:
surname_phonetic_phonix character varying,
forename_phonetic_koeln character varying,
Make sure they exist in you database!
The default algorithm is Text::Phonetic::Phonix.
This component will also add indices for both the column and the
phonetic column. This can be disabled by setting no_indices.
To set the phonetic column on an already populated resultset use
update_phonetic_columns.
RESULTSET METHODS
search_phonetic
This method is used to search a resultset for a given set of
column/value pairs.
You can call this method with either an arrayref or hashref. Arrayref
will cause a query which will join the queries with `OR'. A hashref will
join them with an `AND'.
Returns a DBIx::Class::ResultSet.
update_phonetic_column
$rs->update_phonetic_column('columnname');
This method will update the phonetic column of a column.
update_phonetic_columns
Calls update_phonetic_column for each column with an phonetic column.
ADVANCED CONFIGURATION
algorithm
Choose one of `DaitchMokotoff DoubleMetaphone Koeln Metaphone Phonem
Phonix Soundex SoundexNara'.
See Text::Phonetic for more details.
Defaults to `Phonix'.
no_indices
By default this module will create indices on both the source column and
the phonetic column. Set this attribute to a true value to disable this
behaviour.
OVERWRITTEN RESULT METHODS
register_column
Set up the environment and add the phonetic columns.
store_column
Set the phonetic column to the encoded value.
sqlt_deploy_hook
This is where the indices are created.
AUTHOR
Moritz Onken, `<onken at netcubed.de>'
BUGS
Please report any bugs or feature requests to
`bug-dbix-class-phoneticsearch at rt.cpan.org', or through the web
interface at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=DBIx-Class-PhoneticSearch
. I will be notified, and then you'll automatically be notified of
progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc DBIx::Class::PhoneticSearch
You can also look for information at:
* RT: CPAN's request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=DBIx-Class-PhoneticSearch
* AnnoCPAN: Annotated CPAN documentation
http://annocpan.org/dist/DBIx-Class-PhoneticSearch
* CPAN Ratings
http://cpanratings.perl.org/d/DBIx-Class-PhoneticSearch
* Search CPAN
http://search.cpan.org/dist/DBIx-Class-PhoneticSearch/
COPYRIGHT & LICENSE
Copyright 2009 Moritz Onken, all rights reserved.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.








