2016-04-08 7 views
1

私はこのような文書コンテンツをいくつか持っており、要素 "キー"に範囲インデックスがあります。ファセットを生成するとき範囲制約で計算されたバケットにユーザー定義のアンカーを使用できますか?

<root> 
    <key>NAM</key> 
    <key>NA</key> 
    <key>North America</key> 
</root> 

、私は1つのグループにそれらの代わりに、それぞれ一つに「NAM」と「NA」を計算します。

<constraint name="date"> 
    <range type="xs:dateTime" facet="true"> 
    <element ns="http://example.com" name="entry"/> 
    <attribute ns="" name="date"/> 

    <computed-bucket lt="-P1Y" anchor="start-of-year" name="older">Older</computed-bucket> 
    <computed-bucket lt="P1Y" ge="P0Y" anchor="start-of-year" name="year">This Year</computed-bucket> 
    <computed-bucket lt="P1M" ge="P0M" anchor="start-of-month" name="month">This Month</computed-bucket> 
    <computed-bucket lt="P1D" ge="P0D" anchor="start-of-day" name="today">Today</computed-bucket> 
    <computed-bucket ge="P0D" anchor="now" name="future">Future</computed-bucket> 

    <facet-option>descending</facet-option> 
    </range> 
</constraint> 

しかし、私は、アンカーは、一般的にMarkLogicによって事前に定義されていることに気づいたので、私は求めています:

は、だから私は、多かれ少なかれ、この例のように、計算されたバケットを使用しようとした私が使用することができます私自身が定義したアンカーのような機能は以下の通りですか?

<computed-bucket ge="P0D" anchor="myAnchor.xqy" name="future">Future</computed-bucket> 
+0

あなたは何をしたいのですか?あなたのXMLスニペットには日付が含まれていないので、myAnchor.xqyは何をしますか? – grtjn

+0

myAnchor.xqyは、「アジア」と「NAM」を1つのファセットグループに入れるなど、自分のグループ化戦略を定義することです。 –

答えて

0

計算されたバケットは、文字列vのオプションではありません注意書き。バケットが硬すぎる場合は、カスタムファセットを作成することを検討してください。ここでは、グループ化値パターンを可能にするものの例です。

https://github.com/grtjn/ml-constraints/blob/master/grouping-constraint.xqy

HTH!

+0

私の協力者はカスタムファセットで実装しています。 –

4
あなたが定義する範囲のためのバケットの代わりに、計算されたバケットを使用することができます

http://docs.marklogic.com/guide/search-dev/appendixa#id_80046

ようなものになるだろう:それは助けを望ん

<bucket name="N" lt="O" ge="N">Terms that start with N</bucket> 

を、

+0

この方法はやや難しいコーディングです。いつか「アジア」と「NAM」を1つのファセットグループに入れたいのですが?計算されたバケットを使用する理由は、柔軟性を高めることです。 –

+0

私は懸念を理解しているか分からない。バケットはいつでも変更できます。 – ehennum

関連する問題