问题

以下代码中:

const workOrderSearch = search.create({
   type: 'workorder',
   filters: [
       ['internalid', 'anyof', workOrderIds],
   ],
   columns: [
       search.createColumn({ name: 'tranid' }),
   ]
});

workOrderIds最多可以放多少internal id呢?

经过实际测试

最多理论上无限制,但实际出bug的概率极大,很容易这个条件失效导致搜索出全部的transaction进而超时。在不失效的情况下,全部workorder数据140K条,搜索其中~6000条的情况下,大约耗时15分钟。

最佳方案是把workOrderIds的长度控制在1000以内,这样在总数据140K,按照id搜索其中~6000条,搜索运行6次并把结果拼接,大约耗时3-5分钟。

有待测试的问题

  1. 对于其他类型的transaction type是否存在一样的现象
  2. 对于custom record是否存在一样的现象

欢迎补充。

Last modified: 20/08/2025

Author

Comments

Write a Reply or Comment

Your email address will not be published.