たとえば、次のような異なるコレクションのいずれかに属する 5 つのドキュメントがあるとします。
Biography, Fiction, Humour, Adventure
たとえば、ドキュメント 1 はAdventure Collection にあります。
<Book>
<title>Harry Potter and the Deathly Hallows</title>
<Author>J.K.Rowling</Author>
<year>2007</year>
</Book>
文書 2 は伝記コレクションにあります。
<Book>
<title>Steve Jobs</title>
<Author>Walter Issacson</Author>
<year>2011</year>
</Book>
year
今、要素に提案を適用したいと思います。これをコレクションに適用したい。たとえば、バイオグラフィー コレクションに example-suggest を適用したい。要素範囲インデックスを定義しyear
、アプリケーション ローダーを使用してサンプル ドキュメントを取り込み、ドキュメント設定でドキュメントのコレクションを構成した。
以下は私のXQUERYコードです:
xquery version "1.0-ml";
import module namespace search = "http://marklogic.com/appservices/search"
at "/MarkLogic/appservices/search/search.xqy";
let $options :=
<options xmlns="http://marklogic.com/appservices/search">
<constraint name="Group">
<collection prefix="Biography/"/>
</constraint>
<suggestion-source ref="Group">
<range collation="http://marklogic.com/collation/"
type="xs:string" >
<element name="year"/>
</range>
</suggestion-source>
</options>
return
search:suggest("Group:20", $options)
このクエリを実行すると、2011 年と2007 年の両方の提案が得られますが、これは私が期待しているものではありません。予想される提案は2011です(コレクションのみBiography
を検索する必要があるため)。search: suggestでこのドキュメントを参照しましたが、正確に何が間違いなのかを見つけることができません。私はどこで間違っていますか?