mongodb 中没有数据时出现弹性搜索 index_not_found 错误
elastic search index_not_found error when there is no data in mongodb
您好,我正在使用 monoosastic 将我的 mongodb 与弹性搜索连接起来。如果我在 mongodb 中有数据,则搜索工作正常,但如果集合为空,则在弹性搜索中出现索引未找到错误。下面是我的代码
schema.plugin(mongoosastic, {
hosts: [ELASTICSEARCH_NODE],
index:ELASTICSEARCH_INDEX_NAME
});
setInterval(function () {
var stream = Model.synchronize();
var count = 0;
stream.on('data', function (err, doc) {
if (err) {
console.log('data error', err, doc);
}
count++;
});
stream.on('close', function () {
console.log('elastic search closed');
console.log('elastic search count -', count);
});
stream.on('error', function (err) {
console.log('elastic search error data', err);
});
}, 30000);
我试过如下更改属性
schema.plugin(mongoosePaginate);
schema.plugin(mongoosastic, {
hosts: [ELASTICSEARCH_NODE],
index: ELASTICSEARCH_INDEX_NAME,
indexAutomatically:true,
customProperties:{
"persistent": {
"action.auto_create_index": "true"
}
}
});
但是没有更改还是面临同样的错误。请帮我解决一下。
目前,如果索引不存在,Elasticsearch 将在您向elasticsearch 发送数据时自动创建索引。但是当 mongodb 中没有数据时,它不会发送任何请求,因此不会创建任何索引。
要解决此问题,只需转到 Kibana 开发控制台并使用索引名称执行以下 API 命令(您也可以使用 Curl 命令执行相同操作)。它将在 Elasticsearch 中创建索引,然后您将不会遇到此问题。
PUT your_index_name
您好,我正在使用 monoosastic 将我的 mongodb 与弹性搜索连接起来。如果我在 mongodb 中有数据,则搜索工作正常,但如果集合为空,则在弹性搜索中出现索引未找到错误。下面是我的代码
schema.plugin(mongoosastic, {
hosts: [ELASTICSEARCH_NODE],
index:ELASTICSEARCH_INDEX_NAME
});
setInterval(function () {
var stream = Model.synchronize();
var count = 0;
stream.on('data', function (err, doc) {
if (err) {
console.log('data error', err, doc);
}
count++;
});
stream.on('close', function () {
console.log('elastic search closed');
console.log('elastic search count -', count);
});
stream.on('error', function (err) {
console.log('elastic search error data', err);
});
}, 30000);
我试过如下更改属性
schema.plugin(mongoosePaginate);
schema.plugin(mongoosastic, {
hosts: [ELASTICSEARCH_NODE],
index: ELASTICSEARCH_INDEX_NAME,
indexAutomatically:true,
customProperties:{
"persistent": {
"action.auto_create_index": "true"
}
}
});
但是没有更改还是面临同样的错误。请帮我解决一下。
目前,如果索引不存在,Elasticsearch 将在您向elasticsearch 发送数据时自动创建索引。但是当 mongodb 中没有数据时,它不会发送任何请求,因此不会创建任何索引。
要解决此问题,只需转到 Kibana 开发控制台并使用索引名称执行以下 API 命令(您也可以使用 Curl 命令执行相同操作)。它将在 Elasticsearch 中创建索引,然后您将不会遇到此问题。
PUT your_index_name