The main builder class.
Examples
var body = new Bodybuilder()
.query('match', 'text', 'this is a test')
.build()
Constructs the elasticsearch query body in its current state.
Parameters
version
String Version to generate.
Returns Object Query body.
Set a sort direction on a given field.
Parameters
field
String Field name.direction
[String] A valid direction: 'asc' or 'desc'. (optional, default'asc'
)
Returns Bodybuilder Builder class.
Set a from offset value, for paginating a query.
Parameters
quantity
Number The offset from the first result you want to fetch.
Returns Bodybuilder Builder class.
Set a size value for maximum results to return.
Parameters
quantity
Number Maximum number of results to return.
Returns Bodybuilder Builder class.
Set any key-value on the elasticsearch body.
Parameters
k
String Key.v
any Value.
Returns Bodybuilder Builder class.
Apply a filter of a given type providing all the necessary arguments, passing these arguments directly to the specified filter builder. Merges existing filter(s) with the new filter.
Parameters
type
String Name of the filter type.args
...args Arguments passed to filter builder.
Returns Bodybuilder Builder class.
Apply a query of a given type providing all the necessary arguments, passing these arguments directly to the specified query builder. Merges existing query(s) with the new query.
Parameters
type
String Name of the query type.args
...args Arguments passed to query builder.
Returns Bodybuilder Builder class.
Apply a aggregation of a given type providing all the necessary arguments,
passing these arguments directly to the specified aggregation builder.
Merges existing aggregation(s) with the new aggregation. You may nest
aggregations by passing in a Function
callback as the last parameter.
The callback will receive the newly built aggregation upon which you can
keep calling aggregation(type, ...args)
.
Parameters
type
String Name of the aggregation type.args
...args Arguments passed to aggregation builder. May include am optional nesting function as its last element.
Examples
var body = new Bodybuilder()
.query('match', 'text', 'this is a test')
.aggregation('terms', 'someField', 'bySomeField',
// Nest aggregations on "bySomeField"
agg =>
agg
.agregation('max', 'someOtherField')
.aggregation('missing', 'anotherField')
)
.build()
Returns Bodybuilder Builder class.
Construct elasticsearch filters.
Examples
var body = new Bodybuilder()
.filter('missing', 'user', 'kimchy')
.build()
Construct an Exists filter.
Parameters
field
String Field name to check existence.
Returns Object Exists filter.
Construct a Fuzzy filter.
Parameters
Returns Object Fuzzy filter.
Construct a Match filter.
Parameters
Returns Object Match filter.
Construct a geo bounding box filter.
Parameters
Returns Object Geo bounding box filter.
Construct a Geo distance filter.
Parameters
field
String Field name to query over.distance
String Distance.point
Object Geo point coordinates (conform with GeoJSON).
Returns Object Geo distance filter.
Construct a geo shape filter.
Parameters
Returns Object Geo shape filter.
Construct an Ids filter.
Parameters
values
Array Ids
Returns Object Ids filter.
Construct a Match All filter.
Returns Object Match All filter.
Construct a Missing filter.
Parameters
field
String Field name to check if missing.
Returns Object Missing filter.
Construct a Nested filter: a filter inside a filter.
See: elastic.co/guide/en/elasticsearch/reference/current/query-dsl-nested-filter.html
Parameters
path
String Name of the field containing the nested fields.type
String Name of the desired nested filter.field
String Name of the nested field.args
Array Remaining arguments used to construct nested filter.
Returns Object Nested filter.
Construct a Prefix filter.
Parameters
Returns Object Prefix filter.
Construct a Range filter.
Parameters
Returns Object Range filter.
Construct a Regexp filter.
Parameters
Returns Object Regexp filter.
Construct a Wildcard filter.
Parameters
Returns Object Wildcard filter.
Construct a Term filter.
Parameters
Returns Object Term filter.
Construct a Terms filter.
Parameters
Returns Object Terms filter.
Construct a Type filter.
Parameters
type
String Query value.
Returns Object Type filter.
Construct elasticsearch queries.
Examples
var body = new Bodybuilder()
.query('query_string', 'this AND that')
.build()
Construct a Fuzzy query.
Parameters
Returns Object Fuzzy query.
Construct a Match query.
Parameters
field
String Field name to query over.term
String Query value.opts
[Object](default {}) See https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html for available options
Returns Object Match query.
Construct a Multi Match query. Default type is 'best_fields'.
Parameters
fields
Array The field names to query over.query
String The query string.options
[Object](default defaultOptions) See docs for possible options https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html
Returns Object Multi Match query.
Construct a Query String query.
Parameters
fields
Array The field names to query over.term
String Query value.options
[Object](default {}) See docs for possible options https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html
Returns Object Query String query.
Construct a Range query.
Parameters
Returns Object Range query.
Construct a Term query.
Parameters
Returns Object Term query.
Construct a Terms query.
Parameters
Returns Object Terms query.
Construct a function_score query https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html
Parameters
Returns Object Function score query
Construct a Type query.
Parameters
type
String Type value.
Returns Object Type query.
Construct elasticsearch aggregations.
Examples
var body = new Bodybuilder()
.aggregation('sum', 'grade')
.build()
Construct a Avg aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_avg_.opts
Object Additional options to include in the aggregation.
Returns Object Avg Aggregation.
Construct a Cardinality aggregation
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_cardinality_.opts
Object Additional options to include in the aggregation.
Returns Object Cardinality Aggregation.
Construct a Children aggregation.
Parameters
type
String Document type on which to join.name
String Aggregation name. Defaults to agg_histogram_.
Returns Object Children aggregation.
Construct a Date Histogram aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_date_histogram_.opts
Object Additional options to include in the aggregation.
Returns Object Date Histogram Aggregation.
Construct a Extended Stats aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_extended_stats_.opts
Object Additional options to include in the aggregation.
Returns Object Extended Stats Aggregation.
Construct a Filter aggregation.
Parameters
filterCb
String Callback function that will be passed the FilterBuildername
String Aggregation name. Defaults to agg_filter.opts
Object Additional options to include in the aggregation.
Returns Object Filter Aggregation.
Construct a Geohash grid aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_histogram_.opts
Object Additional options to include in the aggregation.
Returns Object Histogram Aggregation.
Construct a Global aggregation.
Parameters
name
[String] Aggregation name. Defaults to agg_global.
Returns Object Global aggregation.
Construct a Histogram aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_histogram_.opts
Object Additional options to include in the aggregation.
Returns Object Histogram Aggregation.
Construct a Max aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_max_.opts
Object Additional options to include in the aggregation.
Returns Object Max aggregation.
Construct a Min aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_min_.opts
Object Additional options to include in the aggregation.
Returns Object Min aggregation.
Construct a Missing aggregation.
Parameters
Returns Object Missing Aggregation.
Construct a Nested aggregation.
Parameters
Returns Object Nested aggregation.
Construct a Percentiles aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_percentiles_.opts
Object Additional options to include in the aggregation.
Returns Object Percentiles Aggregation.
Construct a Range aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_terms_.opts
Object Additional options to include in the aggregation.
Returns Object Range aggregation.
Construct a Reverse nested aggregation.
Parameters
name
[String] Aggregation name. Defaults to agg_reverse_nested.opts
Object Additional options to include in the aggregation.
Returns Object Reverse nested aggregation.
Construct a Scripted Metric aggregation.
Parameters
map_script
String The script as a string associated to the map_script step.name
[String] Aggregation name. Defaults to agg_scripted_metric.opts
Object Additional options to include in the aggregation.
Returns Object Scripted Metric aggregation.
Construct a Significant Terms aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_significant_terms_.opts
Object Additional options to include in the aggregation.
Returns Object Significant Terms aggregation.
Construct a Stats aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_stats_.opts
Object Additional options to include in the aggregation.
Returns Object Stats Aggregation.
Construct a Sum aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_sum_.opts
Object Additional options to include in the aggregation.
Returns Object Sum Aggregation.
Construct a Terms aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_terms_.opts
Object Additional options to include in the aggregation.
Returns Object Terms aggregation.
Construct a Top hits aggregation.
Parameters
name
[String] Aggregation name. Defaults to 'agg_top_hits_{count}'.opts
Object Options to include in the aggregation.
Returns Object Top hits Aggregation.
Construct a Value Count aggregation.
Parameters
field
String Field name to aggregate over.name
[String] Aggregation name. Defaults to agg_value_count_.opts
Object Additional options to include in the aggregation.
Returns Object Value Count Aggregation.