3

私はMarklogicの世界に不慣れです。私のプログラムは、カスタム Java アプリを使用して、30 秒ごとに Then.com fetch XML データ フィードをクエリします。結果は XML 形式で返されます。Java アプリは、XCC API (Marklogic API) を使用して、取得したデータを単一の XML ファイルで ML に挿入します。データのサイズは毎分 6 MB です。アプリケーションを 1 日程度実行すると、データ量は GB 単位で増加します。この量の膨大なデータを MarkLogic の単一の XML ファイルに入れるために必要な管理者構成については知りません。誰かが私のアプローチを検証したり、管理者レベルで構成を変更する必要があるかどうかを提案したりできますか? XMLの構造は次のとおりです...

<?xml version="1.0" encoding="UTF-8"?>      
<moreovercontentdump>        
<article id="_6232903453">           
<description></description>
<author></author>       
<source_category>Local</source_category>    
<genre>General</genre>  
<publisher></publisher> 
<media_type>text</media_type>   
<docurl>http://www.ilrestodelcarlino.it</docurl>    
<harvest_time>Apr  4 2012  4:28PM</harvest_time>    
<valid_time>May 14 2012  4:27PM</valid_time>    
</article>
<article id="_6232903453">           
<description></description>
<author></author>       
<source_category>Local</source_category>    
<genre>General</genre>  
<publisher></publisher> 
<media_type>text</media_type>   
<docurl>http://www.ilrestodelcarlino.it</docurl>    
<harvest_time>Apr  4 2012  4:28PM</harvest_time>    
<valid_time>May 14 2012  4:27PM</valid_time>    
</article>
<article id="_6232903453">           
<description></description>
<author></author>       
<source_category>Local</source_category>    
<genre>General</genre>  
<publisher></publisher> 
<media_type>text</media_type>   
<docurl>http://www.ilrestodelcarlino.it</docurl>    
<harvest_time>Apr  4 2012  4:28PM</harvest_time>    
<valid_time>May 14 2012  4:27PM</valid_time>    
</article>
</moreovercontentdump>        
4

2 に答える 2

7

サンプル XML を見ると、おそらく各記事をそれぞれのドキュメントに格納したいと思うでしょう。FLWOR 式を書いてcallするか、各ドキュメントを非同期タスクに挿入したい場合はxdmp:document-insertcallすることができます。xdmp:spawn

最も単純なコードは次のようになります。

for $article in xdmp:http-get($some-url, $options)/moreovercontentdump/article
let $uri := concat('moreover/', $article/@id)
return xdmp:document-insert($uri, $article)

元の XML の一部を書き直して、そのコードを拡張することができます。たとえば、harvest_timeandvalid_time要素を xs:dateTime 形式に再フォーマットすることができます。そうすれば、それらの値に範囲インデックスを作成できます。

于 2012-04-05T02:39:00.603 に答える
2

一般に、Before.com からの各応答を独自のドキュメントとして MarkLogic に保存すると、はるかに優れたサービスが提供されます。いくつかの点で、MarkLogic 内では、ドキュメントは RDBMS の行のようなものです。

また、この 30 秒のうちの 1 つを挿入すると、1 分間に 6MB の取り込みが発生することを理解できません。省略した詳細はありますか?

于 2012-04-05T01:01:22.757 に答える