I have developed a small node.js server, which will use the elasticsearch npm module to get the latest JSON document based on timestamp.
Here is the code for it,
let express = require('express');
let app = express();
let elasticsearch = require('elasticsearch');
app.listen(3000, function() {
console.log('Example app listening on port 3000!');
});
let client = new elasticsearch.Client({
host: ['http://localhost:9200']
});
client.ping({
requestTimeout: 30000,
}, function(error) {
if (error) {
console.error('elasticsearch cluster is down!');
} else {
console.log('Everything is ok');
}
});
async function getResponse() {
const response = await client.search({
index: 'weather',
type: 'doc',
body: {
sort: [{ "timestamp": { "order": "desc" } }],
size: 1,
query: { match_all: {} }
}
});
console.log(response);
}
getResponse();
When In run the code, I get an error like this,
(node:11372) UnhandledPromiseRejectionWarning: Error: [query_shard_exception] No mapping found for [timestamp] in order to sort on, with { index_uuid="j-TaPYgLRhuYyiJJjg1tYg" & index="weather" }
Is there anything wrong with the search config? Would appreciate if anybody could help. Thanks!