gpt4 book ai didi

javascript - 如何在MarkLogic中制作动态搜索应用程序?

转载 作者:行者123 更新时间:2023-12-03 01:13:57 24 4
gpt4 key购买 nike

我是 MarkLogic 的新手。是否可以创建一个搜索应用程序,以便当用户进行搜索时,他/她会收到文档的 URI 链接以及一些摘要?当他们单击 URI 链接时,他们可以看到完整的文档。我还想提供集合方面,这将进一步过滤记录。我想将一些字段用作构面,这些字段存在于某些集合的文档中,但不存在于其他集合中。然而,这些集合确实有一个共同的唯一字段,可用于进行联接或链接它们。我想知道,怎么可能?我们如何制作集合方面?我们如何加入不同的集合?我们如何使 URI 链接可点击并引导用户访问完整文档?我想回答一些问题,例如向我显示所有包含“家政”一词的维护文件,然后单击位置名称(位置信息可能位于不同的集合中)以进一步缩小搜索范围,或者我可以单击从事这些“家政”工作的员工姓名,以进一步缩小搜索范围。我将衷心感谢您的帮助。我构建了一个搜索应用程序,就像 MarkLogic 教程中的热门歌曲一样,但它只有一个集合和所有文档的相同 XML 模式,但现在不同的集合和不同的 XML 模式让我感到困惑。还请告诉我是否应该使用 Search API 还是 cts:search 来实现此目的。这是可以通过将这些集合分开来实现的还是我需要对它们进行非规范化?

我非常感谢您的帮助。非常问候

最佳答案

我建议您查看slush-marklogic-node 。它是一个生成器,可以为您创建一个带有功能相当齐全的搜索应用程序的完整项目。它附带了一些 JSON 示例数据,并且有一些与其配合使用的示例方面,但您也可以上传其他数据并使用它,前提是您将其放入“数据”集合中。

不幸的是,它运行在一个稍微过时的堆栈上,但它相当稳定,并且可能会为您提供有关如何处理某些方面的好主意。正确部署后,它应该如下所示:

http://slush-default.demo.marklogic.com/

更新:

关于集合上的方面,生成的应用程序附带了几个示例方面,其中第一个方面基于集合。它由 REST 端点的分面功能驱动 /v1/search ,这又建立在 search:search() 之上。该函数采用所谓的搜索选项,可以定义 constraints 。这里有两个例子:

  <!-- Facet based on document collections, simple yet elegant -->
<constraint name="Collection">
<collection facet="true" />
<!-- optionally enable a prefix to see a specific subset of facets
<collection facet="true" prefix="data/" />
-->
</constraint>

<!-- Example range facet based on the sample-data -->
<constraint name="eyeColor">
<range type="xs:string" facet="true" collation="http://marklogic.com/collation/codepoint">
<facet-option>limit=5</facet-option>
<facet-option>frequency-order</facet-option>
<facet-option>descending</facet-option>
<path-index>eyeColor</path-index>
</range>
</constraint>

另请参阅:https://github.com/marklogic-community/slush-marklogic-node/blob/master/app/templates/rest-api/config/options/all.xml#L105

呵呵!

关于javascript - 如何在MarkLogic中制作动态搜索应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52101163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com