2017-07-21 7 views
0

は、私は上記の機能が起動する$で始まる、指定された要素の値の辞書から値を返すという印象の下にあったMarklogic語彙:理解CTS:要素値

cts:element-values($element-names as xs:QName*,[$start as xs:anyAtomicType?]) 

の使用方法を理解しようとしています。クエリで :

cts:element-values(xs:QName("ts:title"), "He") 

私は "彼" だけが、私のような結果も持っているで始まる結果を期待していた。(私は下にスクロールすると)

を 私はフィールファイン

I周りを回る

$ startが正確に何を指定しているか知りたいですか?

+0

「H」と「He」で始まる値があることを確認できますか? – Tamas

+0

こんにちはTamas、 私の結果に "He"と "H"で始まる値があります。なぜ私の結果に「気分がいい」などの追加の価値があるのか​​混乱しています。 – Yash

+0

私は、この関数はあなたの開始位置から始まる値を返し、それが最後まで継続すると信じています。 – Tamas

答えて

4

$startは開始プレフィックスではなく、リストの開始位置と考えることができます。あなたはその時点からすべての価値を得ています。

接頭辞によって制限する場合は、cts:element-value-matchには$patternを使用します。 http://docs.marklogic.com/cts:element-value-match

+0

ちょうど好奇心から外れてどのように私はダブルタイプの範囲のインデックスに一致することができますか? cts:要素 - 値 - 一致(xs:QName( "rating")、7); (:ratingが7.1,7.2などの値を持つ場合) – Tamas

+0

フラグメントごとに1つの値を仮定すると、クエリ制約として 'cts:element-range-query'を追加できます。あなたは正しいのですが、 'cts:element-value-match'のAPIは原子型を許していますが、浮動小数点型で試みたことはありません。 – hunterhacker

1

cts:element-valuesなどは、$start値以上の値を返します。限界がなくなるまで、実際にはすべての値の出発点に過ぎません。

あなたが特定のパターンに一致する値を返す関数を探しているなら、あなたはおそらく代わりにcts:element-value-matchを使用したい:

cts:element-value-match(xs:QName("title"), "He*") 

HTH!

関連する問題