
jsearch.bucketName( name as xs.string ) as BucketNameDefinition
Names a bucket below the smallest bound, between two bounds, or
above the largest bound as input for the ValuesSearch.groupInto
or FacetDefinition.groupInto method.
| Parameters | |
|---|---|
| name | The name for the bucket. Omit to use the default name for the bucket. |
// Explicitly specify bucket names for a facets query
const jsearch = require('/MarkLogic/jsearch.sjs');
jsearch.facets(
jsearch.facet('Price','price')
.groupInto([
jsearch.bucketName('under $10'), 10,
jsearch.bucketName('$10 to $19.99'), 20,
jsearch.bucketName('over $20'), 1000
]))
.where(cts.directoryQuery('/books/'))
.result();
/* Results:
{"facets": {
"price": {
"under $10": {
"value": {
"minimum": 8,
"maximum": 9,
"upperBound": 10
},
"frequency": 2
},
"$10 to $19.99": {
"value": {
"minimum": 10,
"maximum": 18,
"lowerBound": 10,
"upperBound": 20
},
"frequency": 4
},
"over $20": {
"value": {
"minimum": 20,
"maximum": 30,
"lowerBound": 20,
"upperBound": 1000
},
"frequency": 2
}
}
} }
*/
// Generate bucket names from the value ranges for a values query
jsearch.values('price')
.where(cts.directoryQuery('/books/'))
.groupInto([
jsearch.bucketName(), 10,
jsearch.bucketName(), 20,
jsearch.bucketName()
])
.result();
/* Result: The "name" property of each facet bucket, generated from the bucket
boundaries.
[ {
"minimum": 8,
"maximum": 9,
"upperBound": 10,
"name": "x < 10"
}, {
"minimum": 10,
"maximum": 19,
"lowerBound": 10,
"upperBound": 20,
"name": "10 <= x < 20"
}, {
"minimum": 20,
"maximum": 30,
"lowerBound": 20,
"name": "20 <= x"
} ]
*/
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.