最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

弹性搜索不使用 Nodejs 插入记录?

网站源码admin31浏览0评论

弹性搜索不使用 Nodejs 插入记录?

弹性搜索不使用 Nodejs 插入记录?

我们正在做一些操作,然后我们试图将数据插入到弹性数据库中。我的问题是,很少有记录被插入到索引中,也很少有记录丢失。我可以在我的日志文件中看到数据,而且我也没有弹性错误。由于没有错误,我也无法调试。即使没有插入,客户也会得到响应。下面是我的代码。

 file.js
 async function InsertModelES() {
    var objn= {
        PID: ID,
        TID: MID,
        UserID:userID,
        HID: HrID,
    };
    await elasticClient.index({
        index: 'scrn', 
        type: '_doc',
        id: ID ,
        body: objn
    }, function (err, data) { 
    if (err) {
        console.log("err ", err)
    }
    else {
    } 
 })  

 app.js
 
 app.post('/allrequest', async function(req, res){ 
  let result = await file1.allrequest(data,urn);
  await file1.InsertModelES()
  res.send(result);  
 }

只有在负载很高时才会出现此问题。可能是什么原因?

回答如下:

这是不稳定的,正如您所说的“负载高时会发生”。如果您在索引新文档时设置

refresh=true
,它可能会解决问题。

来自Index API:

refresh(可选,枚举)如果为 true,Elasticsearch 刷新受影响的分片以使该操作对搜索可见,如果为 wait_for 则等待刷新以使该操作对搜索可见,如果为 false,则不对刷新执行任何操作。有效值:true、false、wait_for。默认值:false。

发布评论

评论列表(0)

  1. 暂无评论