- ESM source
- Use esbuild to build before publishing
- [pivot] refactor
filterGroupRanges
implementation and make pivotbuildGroupQuery
drilldown aware
- [pivot] Remove federal references to fiscal year
- [pivot] Fiscal Year work for the pivot table groupingsj
- [pivot] fix range expansions by filtering ranges against drilldown
- Small tweak throwing more informative error
- [pivot] fix drilldown for
dateRangesGroupStats
type
- [pivot] Fixing initialization for
expansions
array
- [pivot] Create new
dateRangesGroupStats
type
- [pivot] New
expansions
array forcolumns
androws
withdrilldown
andloaded
- Changed package manger from npm to yarn
- Migrate tests to jest
- [elasticDSL] Ensure the results are structured correctly
- [pivot] New
pagination
logic withdrilldown
andskip
- [tagsQuery] Fix the level at which child aggs are spread onto the query
- [pivot] Support drilldowns with additional fields (multi-term aggregation) for
fieldValuesGroupStats
type
- [pivot] Create new
tagsQueryGroupStats
type
- [pivot] Renaming groups to rows and deprecating the flatten flag
- Fix CI. Diti has a peer dependency conflict in npm 8.11 wich ships with the latest version of node so lock to node 16.15.0 for now.
- [pivot] Fix multi-term aggregation query logic
- [pivot] Add support for multi-term aggregations in group queries
- [pivot] Removing support for subtotals flag and making it automatic if there is no flatten or drilldown
- [pivot] Fix sorting for a total column document count
- [pivot] Fix sorting bugs on
_count
a metrics with dots when there are no columns
- [pivot] Add sort api
- [pivot] Add filter api
- [fieldValuesGroupStats]
.value
not needed for sorting - [fieldValuesGroupStats]:
sort.order
renamed tosort.direction
- [numberRangesGroupStats] Fix drilldown logic to be lt instead of lte
- Pivot: removing metrics and counts from parent levels when drilling down
- Pivot: fix for root level aggregations
- Pivot: add root level columns and calculations
- Add
columns
to pivot type.buildGroupQuery
now takes agroupingType
prop to behave differently as a group vs a column - Added a hacky implementation of tree simplification (flattening
buckets
, etc) which will be replaced by a transmute tree version in a future release
- Add
aliasOf
to elastic schemas (for better alias handling)
- Fix bug with pivot processReponse including groups that weren't in the query when setting a drilldown
- Fix bug with pivot drilldown wrapping tree and processResponse not handling it
- Add
pivot
drilldown support
- Update pull-request workflow to better catch test failures
- Fix bug where 0 and null value metrics wouldn't be flattened by dsl utils
- Factor out groupStats util
- Add pivot type
- Fixes a bug extracting es types from mappings across different elasticsearch versions.
- Added
date
type toschemaMapping.js
- Updated CI to use node16 and npm7
- Updated package-lock.json to version 2
- Experimental API: remove redis cache support
- Provider: add
searchWrapper
config option
- Add
debug
calls to track request/response queries via thecontexture:elasticsearch
namespace.
- Fix
must not
text filter option
- Switch from the deprecated
dateOptionalTime
to thedate_optional_time
- Fix issue with regex util to comply with https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html#regexp-query-ex-request
- Use native ES support for case insensitive regex matching
- Create a new child client on every search to allow passing headers and other options on a per search basis
- Experimental API: storing searches in redis cache
- Add last1Day and last1Hour to dateMath util
- Example types' context is now valid even if
statsField
is not passed. - [fieldValuePartitionGroupStats] Use
getField
to map field to its un-analyzed value.
- [tagsText/text] Use
prefix
queries where possible for startsWith instead of regex - [tagsText/text] Support dynamic notAnalyzed field detection (no longer hardcoded to untouched)
- [tagsQuery] Limit validContext to 100 tags
- [tagsQuery] Replace special chars with empty space
- Changes the CI from CircleCI to Github Actions
- Increased the value of
scroll
from'2m'
to'60m'
, this is to accommodate deeper pagination. Eventually we need to movesearch_after
as it is now recommended for es7 but for, but this change accommodates our use cases for now without (hopefully) too much of a performance hit.
- Elasticsearch error response being omitted from thrown error. This was intended to be refactored as part of v1 but was never completed. This change brings back the previous behavior until the refactor is able to be completed.
- [results] Respect
highlight: false
to opt out highlighting (regression from 1.0)
- [tagsQuery] Return counts for each tag
- [geo] Fixed bug with client passed latitude/longitude
- [number] Fix additional bug with
findBestRange
(map result keys to number)
- [number] Fix bug with
findBestRange
- Errors are now gracefully caught on a per node basis and properly set on node.error. This means that a node can throw an error, but the rest of the search will continue properly and also not log an uncaught exception to the console. This means the contexture dev tools can now be used to see raw ES errors.
- Simplified runSearch with modern JS syntax
- Get mappings now handles type-less mappings, which is the default on ES7+ (while still handling types for ES6-)
fieldMode
andmodeMap
are now generally removed in favor of automatically using the appropriate not analyzed field as determined dynamically from the schemas (which are now typically generated by reading_mappings
)- [DateRangeFacet] converted to
dateOptionalTime
format which works on ES 6 and 7 - [Results] track_total_hits and handle total.hits being an object for ES 7 support
- Remove
bluebird
dependency - Remove last bit of non fp lodash
- Removed directory-metagen dependency
- New node types now focus on exporting a buildQuery function to make them more easily testable
- Internal - rearranged directory structure to clearly separate utils from types and the provider core
- New Nodes!
dateIntervalGroupStats
- replacesdateHistogram
fieldValuesDelta
- replacestermsDelta
, standardized input/output namesfieldValuesGroupStats
- replacesterms_stats
andtermsStatsHits
fieldValuePartitionGroupStats
- replacesmatchStats
andmatchCardinality
numberIntervalGroupStats
- replacessmartIntervalHistogram
numberRangesGroupStats
- replacesrangeStats
percentilesGroupStats
- replacespercentileRange
stats
- can replacestatistical
,cardinality
andpercentiles
, plus supports other stats
- 🚨BREAKING Changes:
- IE Support requires a polyfill for Math.log10
- Browser usage of
contexture-elasticsearch
is an odd use case anyway, but you can use core-js to polyfill if needed, or do it yourself:Math.log10 = Math.log10 = x => Math.log(x) / Math.LOG10E
- Browser usage of
- [Provider Setup / Top Level]
- Assumes the elasticsearch client is the new @elastic/elasticsearch npm package. Will not work with the old
elasticsearch
package - Removed unused
getMappingProperties
API - Top level
config.request
deprecated in favor of per request config requestorContext
replaced with{requestOptions: headers}
- Killed schema
rawFieldName
andgetField
- Assumes the elasticsearch client is the new @elastic/elasticsearch npm package. Will not work with the old
- [Removed Example Types]
nonzeroClusters
(arbitrary with limited utility over regular histogram)nLevelAggregation
(irrelevant now that ES supports pipeline aggs)percentileRanks
(no known usage)smartPercentileRanks
(no known usage)terms
(just afacet
without a filter, or a newfieldValuesGroupStats
without stats)twoLevelMatch
(never intended to be exposed)esTwoLevelAggregation
(never intended to be exposed)default
(never intended to be exposed)termsDelta
(replaced withvaluesDelta
)percentileRange
(replaced withpercentilesGroupStats
)termsStatsHits
(replaced withfieldValuesGroupStats
)matchCardinality
(replaced withfieldValuePartitionGroupStats
)numberRangeHistogram
(no longer used, was a proof of concept of a number filter with a histogram of values - we'll recreate if needed in a simpler way)percentiles
(replaced withstats
)
- [Results]
- Context no longer wraps everything in
response
- this was an unfortunate, many year old design artifact that is finally removed! - Kill
forceExclude
- Kill
verbose
- Kill
summaryView
- Remove duplicated
hit
on results - Kill
sortMode
- results will always sort on the notAnalyzed field (other use cases make no sense anyway since you'll get a missing fielddata exception)
- Context no longer wraps everything in
- [Facet]
- Kill
caseSensitive
,anyOrder
,maxWords
which weren't relevant anyway - Kill
fieldMode
- facet will now always use the notAnalyzed field if available - Kill
cardinality
, which was a proxy for precision_threshold
- Kill
- [Number]
- Don't run stats/percentiles on number unless part of
findBestRange
, improving performance for the most common number filters cases - Context no longer includes statistical or percentile info, only bestRange results (and no longer runs an extra extended stats call!)
- Don't run stats/percentiles on number unless part of
- [Terms_Stats]
- Killed useless
caseSensitive
flag
- Killed useless
- [Text]
- Killed useless
caseSensitive
flag
- Killed useless
- [Geo]
- Killed deprecated server-side
geocodeLocation
function
- Killed deprecated server-side
- [DateHistogram]
- Killed unused
minDate
andmaxDate
on response - Killed unused extendedBounds support
- Killed unused
- [Schema]
- No longer adds
order: 0
by default (which was a pure UI concern which isn't used by the latest contexture-react usage examples anyway)
- No longer adds
- IE Support requires a polyfill for Math.log10
- fix the npm version issue
- add next18Months rolling date type option
- Added _score field to the results type
- Added support for half_float,short and byte type.
- dateRangeFacet changes - Add timeZone default value.
- dateRangeFacet changes for consistency with the facet type output.
- Added dateRangeFacet type.
- Added support for scaled_float number type.
- Add more rolling date types.
- Support passing a timezone for rolling dates.
- NOTE: Passing datemath expressions is no longer supported.
- [Bool/Exists] hasValue is now based on _.isBoolean so we do not impact searches if there is no boolean value set
- [Facet] Move from
_term
to_key
- TwoLevelAggregation: Fix bug where zero values were being treated as missing
- Include variations fix for highlighting
- Allow contexture search trees to override ES highlight section
- Auto include in ES _.source.includes fields specified in the search highlight override
- Refactor slightly the results highlighting
- Fix the highlighting to match the fields properly
- Add support for inline highlighting to be provided via an object and via
.*
approach
- Add css clss to the pre_tags ES config for highlighting.
- Order in
term_stats
was missing special case forvalue_count
.
- Add support for includes on term_stats
- Throw error message and object on client search run exception
- Add support for "inlineAliases" when dealing with ES highlight response
- Restrict results context highlighting to includes unless context.showOtherMatches
- Fix typo on
tagsText
example type
- Fix scroll for subsequent scroll requests
- Globally check for
notAnalyzedField
from field util instead of just results - Fix scan/scroll on latest core (don't check
config
) - Support
scroll: true
which now defaults to 2m instead of exploding - Support tagsText in typeOptions for text fields
- Facet: Add explicit size:0 support (which sets it to es's max integer size of
2^31 - 1
)
- Only select field values that are arrays when mapping indices to aliases in copySchemasToAliases
- Fixes tagQuery isPhrase
- Adds mapping for boolean and integer ES types
- Adds exists as a type option for all fields
- For the results example type Determine the sort field path by inspecting the
notAnalyzedField
property in the ES schema for the field in context.
- Add
tagsText
example type
- Apparently mappings can sometimes be empty, so omit them from schema processing to be safe
- Added support for fieldMode on the cardinality type.
- Use tagsQuery instead of facet if there is no nested notAnalyzedField
- Add geo_point type default on example type mapping
- Added tests to the recent highlighting changes.
- Fixes to
findBestRange
in number type
- Additional highlighted fields should include fields that are missing from the result include array.
- Geo filter changes
- Avoid object spread in mapping util to make browser usage easier
- Format CHANGELOG
- Added
getSchemas
, a utility that reads from es mappings/aliases to automatically generate schemas (complete with field definitions as well) - Added
exampleTypeSchemaMapping
to map es types to example contexture node types
- [terms_stats] Use field mode for terms stats.
- Added
tagsQuery
type.
- [Number] Number types will now return extended instead of standard stats.
- [Number] Number types will interpret interval min or max null values as open left or right boundaries.
- Fix regEx for words
- Results type will now return verbose data i.e. hits property when include has items so that data values for additional fields is accessible.
- Decomission
useRaw
in favor ofisDateTime
flag
- forceExclude on the results type allows us to extend any existing exclude value (even if empty) with a default list of forceExclude fields defined at the schema.
- [Facet] If includeZeroes, facet should make another search for it's cardinality with query match_all.
- Using combinatorics of the received words on regexp includes if optionsFilter is present on the facet example type.
- Introducing new example type number range histogram.
- Number now supports find best functionality.
- Geo type now guards against 0 results in geocoder.
- Facet can't allow size 0 or empty, so we're sending 10 by default (as before).
- Added the context property useRaw to step out of date formattings on the date example type.
- Fixed Number type bug where min and max values were ignored if passed as strings.
- Added documentation for termsStatsHits
- [Facet] Support size 0
- [Number] No longer wraps results in a results property.
- [Number] Improved number type by providing a configurable interval value for the percentile aggregation.
- [Number] Improved number type by providing additional feedback as filtered range aggregations.
- Allow min 0 and max undefined to be evaluated as truthy or vice-versa.
- [Number] Improved number type by providing feedback as statistics and histogram results.
- Added utility function
getSchemaMapping
to get a mapping used for building a schema directly from ES.
- [Facet] Removed the last reference of context.data from the facet type.
- Removed the root level usage of context.data and context.config, now the inner properties can be passed directly to the root object.
- [facet, terms_stats, termsStatsHits] Add support for overriding fieldmode behavior for all terms aggregation based types. Schemas can either completely override
getField
or justmodeMap
orrawFieldName
. - [facet, terms_stats, termsStatsHits] Use regexp filter intead of wildcard filter/terms include
- [terms_stats, termsStatsHits] Add support for
caseSensitive
flags for options filter - [terms_stats, termsStatsHits] Move off of
lowercased
andexact
- [facet] Remove
anyOrder
support, now isanyOrder
all the time (powered by bool must)
- [Facet] Fix spacing bug on optionsFilter (regex generation)
- [Facet] Make filtering work with includeZeroes
- [Facet] Move off of
lowercased
andexact
- [Facet] Use term
include
intead of wildcard filter - [Facet] Add support for
anyOrder
andcaseSensitive
flags for options filter
- [Facet] Add
includeZeroes
support to facet type. - [Facet] Remove
filterJunk
- Removed
__all
from .gitignore.
- Using directory metagen instead of include-all.
- Added include and exclude to the results type.
- Fixed issues with percentileRange type
- Using regexp instead of wildcard on the text type.
- Passing the headers properly with requestorContext
- Fix request config override order
- Our use of extendAll was wrong, it expects an array.
- Radically reduced ascii folding checks in query example type. Recommended alternative is to use an ascii folding analyzer.
- Using Lodash's extend instead of the three dot syntax, so we can support Node v8.2.0.
- Fix _.extendAll issue where it should accept an array as a parameter
- Fix default type issue
- Fix types issue
- Add dev tooling for PRs
- Initial release