1

次の表現があります。

let $q1 := cts:element-range-query(xs:QName("ts:week"), ">=" ,xs:date("2009-04-25"))
return cts:search(fn:doc(), $q1, "unfiltered")

を実行したxdmp:planところ、範囲インデックスが使用されていて、式が検索可能であることがわかりました

ただし、XPath を追加すると、次のようになります。

let $q1 := cts:element-range-query(xs:QName("ts:week"), ">=" ,xs:date("2009-04-25"))
return cts:search(fn:doc(), $q1, "unfiltered")/ts:top-song/ts:title/text()

を実行するxdmp:planと、パスが検索できないと言われました。さらにクエリトレースで実行すると、fn:doc()検索可能なものは何もないと言われました。

ただし、正しい結果が得られているためです。私の推測では、インデックスは問題なく機能しています。

もしそうなら、「検索不能」というメッセージをログに記録しているのは何ですか?

この場合、タイトル要素が特に必要です。式全体を検索可能にするためにできることはありますか?

4

2 に答える 2

3

このコードは次の 2 つのことを行っています。

  • 検索を実行して一連のドキュメントを取得する
  • 一連のドキュメントに XPath を適用して、ドキュメントからノードを抽出する

別の言い方をすれば、XPath は検索の一部ではありません。検索結果に後処理を適用します。

と の両方が検索への入力のみxdmp:estimate()xdmp:plan()受け入れ、検索結果の後処理は受け入れません。

それが明確になることを願って、

于 2017-07-24T16:50:53.480 に答える