搜索刚刚创建的节点 Alfresco JAVA

Search for the node just created Alfresco JAVA

在一个需求中,我需要查询刚刚创建的文档。如果我使用 lucene 搜索,那么索引将需要几秒钟,并且可能不会出现在搜索结果中。

查询应该从一些露天网络脚本或每 5 秒运行一次的调度程序执行。

现在我正在通过使用 NodeService 并按名称查找子项来执行此操作,这不是有效的方法。我正在使用 JAVA API.

还有其他方法吗?

谢谢

您没有提及您使用的是哪个版本的 Alfresco,但看起来您使用的是 Solr。

如果您刚刚创建了文档,建议保留对它的引用,这样您就不必再次搜索它。

但是,有时无法获得文档参考。例如,client1 不知道 client2 刚刚创建了一个文档。如果您使用的是 Alfresco 4.2 或更高版本,您可能可以启用 Transactional Metadata Queries (TMQ),它允许您对数据库执行搜索,因此没有 Solr 延迟。请仔细阅读整个部分,因为您需要满足四个条件才能使用 TMQ:

  1. Enable the TMQ patch,因此节点属性表在数据库中得到索引。
  2. 尽可能使用数据库进行搜索 (TRANSACTION_IF_POSSIBLE)。
  3. 确保您使用正确的 query language(CMIS、AFTS、db-lucene 等)
  4. 您的查询必须是 supported by TMQ.