我正在尝试构建一个类似于使用 App Builder 开发的预输入/建议功能。
我的 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">
<additional-query>{cts:and-query((cts:collection-query("NY"),cts:element-value-query(xs:QName("Office"),"47","exact"),cts:element-value-query(xs:QName("Person"),"15","exact")))}
</additional-query>
<constraint name="Search_Element">
<range collation="http://marklogic.com/collation/"
type="xs:string" >
<element name="Account"/>
</range>
</constraint>
<suggestion-source ref="Search_Element">
<range collation="http://marklogic.com/collation/"
type="xs:string" facet="true" >
<element name="NUM_ACCT"/>
</range>
</suggestion-source>
</options>
return
search:suggest("Search_Element:103", $options)
这将返回所需的建议。 但是,现在当我希望将它集成到 UI 中时,我无法理解它是如何实现的。
REST API 对于上述查询似乎不够丰富,因为它的键/值、元素值搜索等。例如,我想实现 typehead,对于 NY 集合中的 account 元素,对于上面的特定 office-person 元素值查询
App Builder 使用
extsuggest
扩展,但我无法获得更多信息。
我有一个文本框,它在 typeahead 上,将通过 REST 或 JSON/XML 方式查询 marklogic 服务器,无论哪种方式都可以实现并显示结果。我目前正在尝试使用此处给出的 AngularJS 预输入功能。请指教 !!!