Skip to main content


Facet that provides a list of entries of ranges where each distance range has a number of hits associated. Great for finding results which are near to you.

Elasticsearch Mapping

Below is an example mapping for the field metascore. We need to use a numeric type field type for this facet.

"properties": {
"location": {
"type": "geo_point"


} from '@searchkit/sdk'

const searchkitConfig = {
facets: [
// example of Numeric Range
new GeoDistanceOptionsFacet({
field: 'location',
origin: '37.7749, -122.4194',
unit: 'mi',
ranges: [
{ to: 10, label: 'Very Close' },
{ from: 10, to: 20, label: 'Car ride away' },
{ from: 20, to: 100, label: 'A little far' }
label: 'location',
identifier: 'location'

const request = Searchkit(searchkitConfig);
const response = await request
identifier: 'location',
value: 'Very Close'
facets: true,
hits: {
size: 10,
from: 0,


fieldAggregation field to be used, preferably a field that is raw, not tokenized
identifierRequired to be unique. Used to apply filters on field
labelUI label for facet. Used by @searchkit/elastic-ui components
displayOptional. Used on UI to specify what component to handle facet
rangesArray of distance options.
unitOptional. Unit of distance. Defaults to mi
originRequired. Origin point for distance calculation.