1

私は、屋外のドキュメントを一覧表示して検索するアプリケーションに取り組んでいます。問題は、alfresco がクエリごとに最大 5000 レコードを返すことができることです。ただし、屋外でページネーションを実装する方法があれば、アプリケーションですべてのドキュメントをリストするのではなく、屋外でページごとに X の結果のみを返すようにします。Alfresco 4 エンタープライズ エディションを使用しています。

ヘルプや提案をお願いします。

UPDATE (例) クエリを実行し、条件を満たすすべてのドキュメントを返す Web スクリプトを作成しました。5000 のエントリが見つかったとします。Web スクリプトが最初のページで 100 個のドキュメントを返し、次の 100 個が 2 ページ目で返されるように、Web スクリプトを変更したいと考えています。

Limit BY と OFFSET キーワードの使用のようなものになります。このようなもの

4

2 に答える 2

3

SearchServiceに対してクエリを実行する方法は 2 つあります(selectNodes/selectProperties 呼び出しを除く)。1 つの方法は、すべての引数をクエリ メソッドに直接指定することです。これには簡潔であるという利点がありますが、すべてのオプションを取得できないという欠点があります。

または、 SearchParametersオブジェクトを使用して クエリを実行できます。これにより、単純なクエリで実行できるすべてのことを実行できます。これにはさらに setLimit、setSkipCount、setMaxItems が含まれており、ページングを行うことができます。

クエリが次のようなものだった場合:

searchService.query(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, "lucene", myQuery);

代わりに次のようにします。

SearchParameters sp = new SearchParameters();
sp.addStore(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE);
sp.setLanguage("lucene");
sp.setQuery(myQuery);
sp.setMaxItems(100);
sp.setSkipCount(900);
searchService.query(sp);
于 2012-07-16T13:18:34.197 に答える
1

Web スクリプトを Javascript で記述したと仮定すると、関数を使用して、以下に示すようにページsearch.query()プロパティを検索定義に追加できます。

var sort1 =   {
     column: "@{http://www.alfresco.org/model/content/1.0}modified",
     ascending: false   
};   

var sort2 =   {
     column: "@{http://www.alfresco.org/model/content/1.0}created",
     ascending: false   
};   

var paging =   {
     maxItems: 100,
     skipCount: 0   
};   

var def = {
     query: "cm:name:test*",
     store: "workspace://SpacesStore",
     language: "fts-alfresco",
     sort: [sort1, sort2],
     page: paging   
};   

var results = search.query(def);

詳細については、 http : //wiki.alfresco.com/wiki/4.0_JavaScript_API#Search_API をご覧ください。

于 2012-07-16T16:19:52.163 に答える