Download the PHP package jfxy/elasticsearch-query-builder without Composer
On this page you can find all versions of the php package jfxy/elasticsearch-query-builder. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Table of contents
Download jfxy/elasticsearch-query-builder
More information about jfxy/elasticsearch-query-builder
Files in jfxy/elasticsearch-query-builder
Download jfxy/elasticsearch-query-builder
More information about jfxy/elasticsearch-query-builder
Files in jfxy/elasticsearch-query-builder
Vendor jfxy
Package elasticsearch-query-builder
Short Description a query builder package for elasticsearch
License MIT
Package elasticsearch-query-builder
Short Description a query builder package for elasticsearch
License MIT
Keywords phpelasticsearch
Please rate this library. Is it a good library?
Informations about the package elasticsearch-query-builder
elasticsearch-query-builder
安装
注意
- elasticsearch <= 6.8
- php >= 7.1
- 需要子类继承Jfxy\ElasticsearchQuery\Builder并实现query() 和 scrollQuery()
- 复杂的业务查询应该在子类中封装
- 下面将子类定义为Es
方法
select
where
- 比较运算符支持 =,>,>=,<,<=,!=,<>
- where、orWhere、whereNot、orWhereNot均支持闭包调用,而orWhere、whereNot、orWhereNot则是对闭包内的整体条件进行 or 和 not 的操作,闭包用法类似mysql中对闭包内的条件前后加上()
- 在封装业务代码存在or关系时,应使用闭包包裹内部条件
filter
- 用法同where一致,不过条件会写在filter下
in
between
- 默认为闭区间,比较运算符支持 >,>=,<,<=
exists
- 字段不存在或为null
prefix 前缀匹配
wildcard 通配符匹配
regexp 正则匹配
fuzzy 模糊查询
whereRaw 原生条件
match
- whereMatch方法,$type=match、match_phrase、match_phrase_prefix
- whereMultiMatch方法,$type=best_fields、most_fields、cross_fields、phrase、phrase_prefix
minimumShouldMatch 最小匹配度
whereNested nested类型字段查询
- 仅支持传入闭包和数组条件
postWhere 后置过滤器
- postWhere方法添加的条件会作用于post_filter查询,条件作用于聚合之后
- postWhere方法参数同where方法相同,复杂的检索可以传入数组或闭包
when
- $value为true时会执行$callback,否则当$default存在时会执行$default
collapse 折叠
- 使用collapse方法并不会使返回的总数发生变化,计算折叠后的总数需要配合cardinality聚合使用
- collapse方法和paginator方法一起使用时,paginator方法内部会对折叠的字段做cardinality聚合,不需要考虑collapse的总数问题
from
size
orderBy 排序
highlight 高亮
- 高亮配置及高亮字段
-
建议先在Es子类中设置highlightConfig通用属性
- 使用highlightConfig方法会覆盖highlightConfig通用属性中的同键名配置
- highlight方法指定高亮字段并且设置指定字段的高亮属性
aggs 聚合
- $alias参数是该聚合的别名
- $type参数是聚合的类型,terms、histogram、date_histogram、date_range、range、cardinality、avg、sum、min、max、extended_stats、top_hits、filter...
- $params参数是不同聚合类型下的条件键值对数组
-
...$subGroups参数是嵌套聚合,通过传递闭包参数调用,可同时传递多个闭包
-
groupBy方法是aggs的terms类型聚合的封装
`` -
dateGroupBy方法是aggs的date_histogram类型聚合的封装
`` -
cardinality方法是aggs的cardinality类型聚合的封装 ``
-
avg方法是aggs的avg类型聚合的封装 ``
-
sum方法是aggs的sum类型聚合的封装 ``
-
min方法是aggs的min类型聚合的封装 ``
-
max方法是aggs的max类型聚合的封装 ``
-
stats方法是aggs的stats类型聚合的封装 ``
-
extendedStats方法是aggs的extended_stats类型聚合的封装 ``
-
topHits方法是top_hits类型聚合的封装
- aggsFilter方法是filter类型聚合的封装,可在聚合内部进行条件过滤,$wheres参数仅支持数组和闭包,可参考where方法
raw
- 原生dsl语句查询,不支持添加其他条件
dsl
- 返回待查询的dsl语句,$type = 'json',返回json字符串
get
- 查询结果,$directReturn = true,返回未经处理的结果
paginator 分页
- paginator方法和collapse方法一起使用时,paginator方法内部会对折叠的字段做cardinality聚合,不需要考虑collapse的总数问题
first
- 返回第一条记录,$directReturn = true,返回未经处理的结果
count 计数
scroll 游标
封装示例
query、scrollQuery实现示例
调用示例
All versions of elasticsearch-query-builder with dependencies
PHP Build Version
Package Version
Requires
php Version
^7.1
The package jfxy/elasticsearch-query-builder contains the following files
Loading the files please wait ....