elasticsearch Elastic search不使用Nodejs插入记录?

u59ebvdq  于 2023-05-22  发布在  ElasticSearch
关注(0)|答案(2)|浏览(166)

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

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);  
 }

这个问题只在负载高时发生。会是什么原因呢?

db2dz4w8

db2dz4w81#

它是不稳定的,正如你所说的“它发生在负载高的时候”。如果您在索引新文档时设置refresh=true,则可能会解决此问题。
Index API

refresh(可选,enum)如果为true,Elasticsearch刷新受影响的分片,使此操作对搜索可见,如果为wait_for,则等待刷新,使此操作对搜索可见,如果为false,则不刷新。有效值:true,false,wait_for.默认值:false。

xienkqul

xienkqul2#

批量API可以在单个API调用中执行许多索引/删除操作。这可以大大提高索引速度。https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/bulk_examples.html

相关问题