一个CPAN模块来解析谷歌式搜索查询条款?

ojo*_*lva 2 perl search standards full-text-search cpan

我想转换样式的查询字符串:

my $query = q{recipe "with sauce" +eggs -pastrami};
Run Code Online (Sandbox Code Playgroud)

进入一个程序化的SQL :: Abstract查询,用于DBIx :: Class.

$where = { -and=>[ 
     'ingredients' =>[ { -like=>'%recipe%' }, { -like=>'%with sauce%' } ],
     'ingredients' =>{ -like=>'%eggs%' },
     -not => { 'ingredients => { -like => '%pastrami%' } }
]}; 
Run Code Online (Sandbox Code Playgroud)

上面的表示只是近似的.它是由耳朵编写的,未经测试,绝不是语法上的,也不是概念上正确的.

我正在寻找的是关于这个主题的一些现有技术,基本的东西.或许是CPAN模块,或者可以转换为CPAN模块的C库.这样的事情有标准吗?

Ash*_*ley 5

KinoSearch中的基本查询解析器就是这样做的(虽然连接部分的默认查询布尔值是OR,但它可以设置为AND).您可以通过几种方法来实现词干分析,令牌类型和通配符,但不能内置.它有一个学习曲线,文档有点薄,但我强烈推荐这个包.除了做得好和速度非常快之外,作者对反馈,问题和错误报告都非常敏感.