Скажем, у меня есть 5 документов, которые принадлежат любой из разных коллекций, например:
Biography, Fiction, Humour, Adventure
Например, документ 1 находится в коллекции Приключения:
<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
. Я хочу применить это к коллекциям, то есть, например, предложить к коллекциям биографий. Я определил индекс диапазона элементов для year
и загрузил образцы документов с помощью загрузчика приложений и настроил коллекции для документов в настройках документа.
Follwing - это мой код 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
). Я сослался на этот документ при поиске: предложить, но я не могу узнать, что именно это ошибка. Где я делаю не так?