elastic.js
Version:
Javascript API for ElasticSearch DSL
116 lines (93 loc) • 3.2 kB
JavaScript
/**
@class
<p>A shape which has already been indexed in another index and/or index
type. This is particularly useful for when you have a pre-defined list of
shapes which are useful to your application and you want to reference this
using a logical name (for example ‘New Zealand’) rather than having to
provide their coordinates each time.</p>
@name ejs.IndexedShape
@ejs geo
@desc
<p>Defines a shape that already exists in an index/type.</p>
@param {String} type The name of the type where the shape is indexed.
@param {String} id The document id of the shape.
*/
ejs.IndexedShape = function (type, id) {
var indexedShape = {
type: type,
id: id
};
return {
/**
Sets the type which the shape is indexed under.
@member ejs.IndexedShape
@param {String} t a valid shape type.
@returns {Object} returns <code>this</code> so that calls can be chained.
*/
type: function (t) {
if (t == null) {
return indexedShape.type;
}
indexedShape.type = t;
return this;
},
/**
Sets the document id of the indexed shape.
@member ejs.IndexedShape
@param {String} id a valid document id.
@returns {Object} returns <code>this</code> so that calls can be chained.
*/
id: function (id) {
if (id == null) {
return indexedShape.id;
}
indexedShape.id = id;
return this;
},
/**
Sets the index which the shape is indexed under.
Defaults to "shapes".
@member ejs.IndexedShape
@param {String} idx a valid index name.
@returns {Object} returns <code>this</code> so that calls can be chained.
*/
index: function (idx) {
if (idx == null) {
return indexedShape.index;
}
indexedShape.index = idx;
return this;
},
/**
Sets the field name containing the indexed shape.
Defaults to "shape".
@member ejs.IndexedShape
@param {String} field a valid field name.
@returns {Object} returns <code>this</code> so that calls can be chained.
*/
shapeFieldName: function (field) {
if (field == null) {
return indexedShape.shape_field_name;
}
indexedShape.shape_field_name = field;
return this;
},
/**
The type of ejs object. For internal use only.
@member ejs.IndexedShape
@returns {String} the type of object
*/
_type: function () {
return 'indexed shape';
},
/**
Retrieves the internal <code>script</code> object. This is typically used by
internal API functions so use with caution.
@member ejs.IndexedShape
@returns {String} returns this object's internal object representation.
*/
toJSON: function () {
return indexedShape;
}
};
};