屋外ページに表示する屋外のすべてのファイルの数を知りたい場合は、最初にそれを行う方法を教えてください。
データベースへのAPIアクセスが見つかりません。APIが見つかった場合、次に何をすべきですか?
次のように、SearchServiceにクエリを実行できます。
SearchParameters params = new SearchParameters();
params.getStores().add(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE);
params.setLanguage(SearchService.LANGUAGE_FTS_ALFRESCO);
params.setQuery("TYPE:cm\\:content AND PATH:\"/app\\:company_home/st\\:sites/cm\\:test/cm\\:documentLibrary//*\"");
ResultSet result = searchService.query(params);
System.out.println(result.length());
しかし、パフォーマンスのためにどれだけ最適化されているかはわかりません。
簡単な方法で、データベース内のすべてのタイプをapiでクエリできます。qは屋外用のlocalhost:8080/alfresco/service/cmis/query?q={q}
CMISクエリ言語です。たとえばSELECT * FROM cmis:document
、すべてのドキュメントのすべてのプロパティを選択します。CMISクエリ言語
の詳細を参照してください。
私の経験によると、データベースからそのような情報を取得する方が良い場合があります。
情報のために:私の現在のプロジェクトでは、リポジトリに50000を超えるドキュメントがあり、監視のために正確な数を取得する必要があります。
場合によっては、DBクエリを使用するためのいくつかのポイントがあります。
CMISは(はるかに)遅くなります(私の場合、クエリごとに最大1〜2秒かかりました)。@lightozeが提案したようSearchService
に、を使用できますが、ドキュメントはで取得されるResultSet
ため、後でメソッドを呼び出しlength
てそれらの数を取得する必要があります。これは、SQL呼び出しよりも時間がかかると思います。そして私の場合、私は5分ごとにそのような電話をかけます。
5.0.cには、一部のクエリの結果を1000ドキュメントで制限するバグがあります。
ここでは、データベースに接続する方法と、リポジトリ内のドキュメントの総数を含むいくつかの興味深いクエリを見つけることができます。