2017-08-02 67 views

回答

1

你可以寫一些腳本來做到這一點,例如在JavaScript中,你需要從你的查詢控制檯執行:

'use strict'; 

const admin = require('/MarkLogic/admin'); 
const config = admin.getConfiguration(); 
const db = xdmp.database('Documents'); 

const indexes = admin.databaseGetRangeElementIndexes(config, db); 
const newConfig = admin.databaseDeleteRangeElementIndex(config, db, indexes); 
admin.saveConfiguration(newConfig); 

'All Range Indexes have been removed.' 

以上通過所有要素範圍指標的推移'文檔'數據庫並將其刪除 - 包括任何預定義的DLS範圍索引。

1

我相信你可以使用REST Management API方法PUT /manage/v2/databases/{dbid}/properties來做到這一點。如果您通過range-element-indexes屬性爲空的有效載荷,我認爲它會刪除任何現有的屬性。

看看以下內容:

http://docs.marklogic.com/REST/PUT/manage/v2/databases/[id-or-name]/properties

你想使用類似於XML以下的有效載荷:

<database-properties xmlns="http://marklogic.com/manage"> 
<range-element-indexes/> 
</database-properties> 

或者像這樣JSON:

{ "range-element-index": [] } 

但要小心:這是一個尖銳的工具。您還將刪除預定義的索引,如DLS的索引。我認爲Tamas的解決方案也是如此,但沒有證實。

+0

P.S.這不是屬性名稱中的拼寫錯誤:它是XML中的複數,單數是JSON。 – kcoleman

+0

儘可能地嘗試管理API(它肯定會在這裏工作)。它不需要具有「管理員」角色的用戶,而是更有限的「管理 - 管理員」角色,並且您可以通過您最喜歡的HTTP客戶端完成任務。 – rjrudin