我是MarkLogic的新手。有没有可能让搜索应用程序在用户进行搜索时收到文档的URI链接以及一些摘要?当他们点击URI链接时,他们会看到完整的文档。我还想给出集合面,它将进一步过滤记录。有一些字段我想用作方面,这些字段在一些集合的文档中存在,但在其他集合中不存在。然而,这些集合确实有一个公共的唯一字段,可用于建立连接或链接它们。我想知道,这怎么可能呢?我们如何制作集合面?我们如何在不同的集合上进行连接?如何使URI链接可点击并将用户定向到完整的文档?我想回答这样的问题:向我展示所有包含“家政”一词的维护文档,然后我单击位置的名称(位置信息可能在不同的集合中)以进一步缩小搜索范围,或者我也可以单击从事这些“家政”工作的员工的姓名以进一步缩小搜索范围。我真的很感谢你的帮助。我构建了一个搜索应用,就像MarkLogic教程中的热门歌曲一样,但它只有一个集合,所有文档都有相同的XML,但现在不同的集合和不同的XML让我感到困惑。也请告诉我应该使用搜索API还是cts:search来实现这一点。这可以通过保持这些集合的分离来实现吗?或者我需要对它们进行非规范化吗?
我真的很感谢你的帮助。致以极大敬意
发布于 2018-08-31 02:02:20
我建议你去看看slush-marklogic-node。它是一个生成器,可以为你创建一个完整的项目和一个功能相当齐全的搜索应用程序。它附带了一些JSON样本数据,并且有一些使用它的示例面,但你也可以上传其他数据,并使用它,前提是你把它放在' data‘集合中。
不幸的是,它运行在一个有点过时的堆栈上,但它相当稳定,可能会为您提供如何处理某些方面的好主意。正确部署后,它应该如下所示:
http://slush-default.demo.marklogic.com/
更新:
关于集合上的方面,生成的应用程序附带了几个示例方面,其中第一个方面是基于集合的。它是由REST端点/v1/search的分面功能驱动的,而REST端点又构建在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://stackoverflow.com/questions/52101163
复制相似问题