0

我需要从实时遗留数据库中定期重新索引我的所有域实例 DB 中的约 400k 记录器在哪里从 DB 中读取域对象一个一个而没有重新索引获得约 15 分钟

在 remdisk 中使用 reindex 进行迭代需要 8-10 小时:

ids.each { id ->
      Domain.reindex(id)
}

由于数据库连接超时,我无法使用 Domain.reindex()

searchableService.reindexAll(list) 大约需要 2 个小时。但是这种方法已被弃用

索引由一个线程更新。磁盘上索引的结果大小 ~0.5Gb

如何提高 lucena 的性能?据我了解,我的信息的重新索引应该需要大约一小时。

4

1 回答 1

0

根据https://stackoverflow.com/a/13128140/166062,好的设置是:

compassSettings = [
  'compass.engine.optimizer.schedule.period': '300',
  'compass.engine.mergeFactor':'1000',
  'compass.engine.maxBufferedDocs':'1000',
  'compass.engine.ramBufferSize': '128',
  'compass.engine.useCompoundFile': 'false',
  'compass.transaction.processor': 'read_committed',
  'compass.transaction.processor.read_committed.concurrentOperations': 'false',
  'compass.transaction.lockTimeout': '30',
  'compass.transaction.lockPollInterval': '500',
  'compass.transaction.readCommitted.translog.connection': 'ram://'
]
于 2014-04-18T19:18:31.477 回答