使用 SQL 查询 ElasticSearch EsParser

MIT
PHP
跨平台
2018-03-29
qieangel

【年终提升】2019尾声,来 OSC·年终盛典收割技术干货,get新技能!>>>

还在为学习elasticsearch的api而苦恼吗?还在为完不成搜索任而烦恼吗?

EsParser帮你解决上面的问题,它完全可以作为mysql来使用,提高网站的访问速度,提高项目的开发效率!

EsParser支持丰富的sql函数,同时为你的统计分析带来飞快的查询性能!

EsParser

php的操作类库,通过写sql来转化dsl来查询elasticsearch

composer使用

{
    "require": {
        "qieangel2013/esparser": "dev-master"
    }
}
composer install
require __DIR__.'/vendor/autoload.php';
//$sql = 'select * from alp_dish_sales_saas where sid in(994,290) limit 1,10';
//$sql='update alp_dish_sales_saas set mid=3  where adsid=15125110';
//$sql='delete from alp_dish_sales_saas where adsid=15546509';
//$sql="select *,concat_ws('_',category_name.keyword,dish_name.keyword,sku_name.keyword) as dfg from alp_dish_sales_saas where sale_date>'2017-01-01' and sale_date<'2017-09-02' group by dfg order by total_count desc";
$sql = 'select *,DATE_FORMAT(sale_date,"%Y-%m-%d") as days from alp_dish_sales_saas group by days ';
$es_config=array(
    'index' =>"alp_dish_sales_saas",
    'type'  =>"alp_dish_sales_saas",
    'url'   =>"http://127.0.0.1:9200",
    'version' =>"5.x" //1.x 2.x 5.x 6.x,可以不配置,系统会请求获取版本,这样会多一次请求,建议配置一下
 );
$parser = new EsParser($sql, true,$es_config);//第三个参数是es的配置参数,一定要配置
print_r($parser->result);//打印结果
//print_r($parser->explain());//打印dsl

普通调用

require_once dirname(__FILE__) . '/src/library/EsParser.php';
//$sql = 'select * from alp_dish_sales_saas where sid in(994,290) limit 1,10';
//$sql='update alp_dish_sales_saas set mid=3  where adsid=15125110';
//$sql='delete from alp_dish_sales_saas where adsid=15546509';
//$sql="select *,concat_ws('_',category_name.keyword,dish_name.keyword,sku_name.keyword) as dfg from alp_dish_sales_saas where sale_date>'2017-01-01' and sale_date<'2017-09-02' group by dfg order by total_count desc";
$sql = 'select *,DATE_FORMAT(sale_date,"%Y-%m-%d") as days from alp_dish_sales_saas group by days ';
$es_config=array(
    	'index' =>"alp_dish_sales_saas",
    	'type'  =>"alp_dish_sales_saas",
    	'url'   =>"http://127.0.0.1:9200",
        'version' =>"5.x" //1.x 2.x 5.x 6.x,可以不配置,系统会请求获取版本,这样会多一次请求,建议配置一下
	);
$parser = new EsParser($sql, true,$es_config);//第三个参数是es的配置参数,一定要配置
print_r($parser->result);//打印结果
//print_r($parser->explain()); //打印dsl

目前支持的sql函数

*  SQL Select
*  SQL Delete
*  SQL Update
*  SQL Where
*  SQL Order By
*  SQL Group By
*  SQL AND & OR 
*  SQL Like
*  SQL COUNT distinct
*  SQL In
*  SQL avg()
*  SQL count()
*  SQL max()
*  SQL min()
*  SQL sum()
*  SQL Between
*  SQL Aliases
*  SQL concat_ws
*  SQL DATE_FORMATE

使用注意事项

请在配置项填写es的版本,这样系统不会请求获取版本,这样不会多一次请求,建议配置一下

项目地址

github:https://github.com/qieangel2013/EsParser
oschina:https://gitee.com/qieangel2013/EsParser
的码云指数为
超过 的项目
加载中

评论(1)

安宇雨
安宇雨
sql转dsl,感觉elasticsearch的功能不能发挥......

EsParser 1.5 发布,开箱即用、高性能查询 Elasticsearch

EsParser 是 PHP 的操作类库,通过写 sql 来转化 dsl 来查询 Elasticsearch,特点是开箱即用、高性能查询 ,目前1.5 已发布,更新如下: 更新支持insert操作插入数据 更新新的底层算法 修复其...

2018/06/06 10:26

EsParser 1.4 发布,开箱即用,高性能查询 Elasticsearch

EsParser 是 PHP 的操作类库,通过写 sql 来转化 dsl 来查询 Elasticsearch,特点是开箱即用、高性能查询 ,目前1.4 已发布,更新如下: 更新支持深度分页scroll特性 更新新的底层算法 修复其...

2018/04/26 10:38

EsParser 1.3 发布,开箱即用,高性能查询 Elasticsearch

EsParser 是 PHP 的操作类库,通过写 sql 来转化 dsl 来查询 Elasticsearch,特点是开箱即用、高性能查询 ,目前1.3 已发布,更新如下: 更新支持IS NULL ,<>,IS NOT NULL等sql操作符等特性 ...

2018/04/13 08:30

PHP 操作类库 EsParser 1.2 发布

EsParser 是 PHP 的操作类库,通过写 sql 来转化 dsl 来查询 Elasticsearch,特点是开箱即用、高性能查询 ,目前1.2 已发布,更新如下: 更新支持not like ,!=,多重or等sql操作符等特性 更新...

2018/04/10 08:56

EsParser 1.1 发布,开箱即用,高性能查询 Elasticsearch

EsParser 1.1 已发布,更新如下: 更新支持 SQL concat_ws ,SQL DATE_FORMATE等特性 更新修复统计的bug 更新修复分页的bug composer使用 {     "require": {         "qiea...

2018/04/04 08:39

EsParser 1.0 发布:潜心之作,完全开箱即用

还在为学习elasticsearch的api而苦恼吗?还在为完不成搜索任而烦恼吗? EsParser帮你解决上面的问题,它完全可以作为mysql来使用,提高网站的访问速度,提高项目的开发效率! EsParser支持丰...

2018/03/29 15:40

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

暂无博客

返回顶部
顶部