WindSearch是本人开发的一个原生PHP全文检索引擎,为PHP站点的搜索需求而开发,具有轻量、强大的特点,对中小站点尤其适合。
以下是跟ES的各方面对比:
ES:全文检索引擎
WindSearch:全文检索引擎
ES:需要安装、配置
WindSearch:无需安装、配置,引入一行代码就能立即使用
WindSearch安装示例:
// WindSearch安装 引入一行代码,再无其它任何配置 require_once 'yourdirname/vendor/autoload.php';
ES:内存占用较高
WindSearch:磁盘式搜索引擎,平时对内存占用为零
ES:适合大型网站
WindSearch:跟PHP中小站点完美适配
ES:服务式,需要维护调优,维护成本较高
WindSearch:插件式,无需任何维护,永不“宕机”
ES:多种检索模式
WindSearch:多种检索模式
WindSearch的检索模式列表:
match 单字段检索
multi_match 多字段检索
match_fuzzy 模糊搜索
match_prefix 前缀匹配
match_suffix 后缀匹配
match_prefix_suffix 前后缀混合匹配
match_phrase 短语搜索
match_terms 精确搜索
match_bool 布尔搜索(无限嵌套)
match_range 范围查询
match_all 查询所有数据
match_rand 随机获取数据
match_primarykey 根据主键查询数据
match_geo 地理空间搜索
match_auto_completion 自动补全
WindSearch的搜索语法跟ES差不多,无额外学习成本
WindSearch搜索语法示例:
// 搜索多个字段 $query = [ 'multi_match' => [ 'field' => [ [ 'name' => 'title', 'query' => $query,//搜索内容 'highlight' => [ // 结果高亮 'is_cut' => true, // 是否将未匹配的地方截取掉 'fixed_length' => '', // 保留多少字符,若为空,则保持原长度 ], ], [ 'name' => 'tags', 'query' => '蔬菜', ] ], // 结果排序 'sort' => [ 'time' => 'asc' //asc 按字段值正序 desc 按字段值倒序 ], 'list_rows' => $listRows, // 每页多少条数据 'page' => $page, // 第几页 ] ];
ES:服务器越牛,数据承载量越大
WindSearch:适合单机使用,可承载百万至千万的数据,无需高配服务器
ES:对于中小网站,各方面成本较高
WindSearch:对于中小网站,几乎没有什么成本
偶尔不稳定,多刷新几次
原文链接:https://blog.csdn.net/rock365/article/details/145528914?ops_request_misc=%257B%2522request%255Fid%2522%253A%25221e465770a7e6d5eb589a9b9d6a875c04%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=1e465770a7e6d5eb589a9b9d6a875c04&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-24-145528914-null-null.nonecase&utm_term=geo%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E