duncanogle / boolean-search-parser
将布尔搜索逻辑转换为MySQL全文参数的一种方法
1.0.5
2016-01-19 11:44 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: 4.8.*
This package is not auto-updated.
Last update: 2024-09-26 00:44:24 UTC
README
这个类的主要目的是将布尔搜索转换为MySQL全文搜索可以使用的内容。
这个想法是在最近大量使用布尔搜索系统之后产生的,并在阅读了这个StackOverflow问题之后,发现并没有什么现成的PHP库可以用于MySQL。
非常感谢PHP SQL Parser,它有一个如此棒的标记化器和相关方法,使得这个过程变得更容易。
目标
- 提供足够好的转换
- 不尝试纠正括号和引号等错误
注意
使用
$parser = new \DuncanOgle\BooleanSearchParser\Parser();
echo $parser->parse("ict OR (technology AND bob)");
// ict (+technology +bob)
关于顺序
顺序和括号很重要,通常情况下,OR逻辑优先级更高
sales OR finance AND manager
将变成 sales finance +manager
,而不是 sales +finance +manager
待办事项
- 处理 * 字符
- 将其转换为可以通过composer拉取的包
- 将测试迁移到PHP Unit
- 添加自定义优先级设置(当前是 OR>AND>NOT)
- 添加可选的词干提取器 如这里使用的