2017-02-13 60 views
0

我們正在構建一個ML作爲後端數據庫的企業應用程序。其中一個要求是通過各種文檔在XML中查找特定元素的不同值。Marklogic-檢索文檔中XML元素的不同值

我可以使用結構化查詢的不同ENTITY_TYPE /組合查詢

下面所有的文件都是實體集合的一部分:

文件1

<xml> 
    <entities> 
     <entity_name>Imprezza</entity_name> 
     <entity_type>Car</entity_type> 
     <entity_color>Red</entity_color> 
    <entities> 
<xml> 

文件2

<xml> 
    <entities> 
     <entity_name>Ducati</entity_name> 
     <entity_type>Bike</entity_type> 
     <entity_color>White</entity_color> 
    <entities> 
<xml> 

文獻3

<xml> 
    <entities> 
     <entity_name>Lancia</entity_name> 
     <entity_type>Car</entity_type> 
     <entity_color>Red</entity_color> 
    <entities> 
<xml> 

文獻4

<xml> 
    <entities> 
     <entity_name>Scania</entity_name> 
     <entity_type>Truck</entity_type> 
     <entity_color>Black</entity_color> 
    <entities> 
<xml> 

要求:給我你所有不同ENTITY_TYPE集合中

結果:汽車,自行車,卡車

P.S:需要在Java層得到結果。我們目前有一個API,可根據輸入生成MarkLogic組合查詢(結構化查詢+選項查詢)。 我可以使用結構化查詢/組合查詢獲得不同的實體嗎?

回答

4

你可以用一個詞彙(基於以上無空格) https://docs.marklogic.com/guide/search-dev/lexicon

OR

您可以在每個值的範圍指標做到這一點做到這一點。 https://docs.marklogic.com/guide/admin/range_index

無論哪種情況,都可以通過值REST端點檢索值。 https://docs.marklogic.com/REST/GET/v1/values/[name]

我相信,一旦你有你的詞典或範圍索引,也有java API解決方案。

+1

是的,Java和Node.js客戶端API都公開與GET/v1/values/{name}等效的功能。在Java中它是QueryManager.values(http://docs.marklogic.com/guide/java/searches#id_65191),在Node.js中它是databaseClient.values(http://docs.marklogic.com/guide/節點-dev的/搜索#id_56768)。 – kcoleman