如何通过使用 MarkLogic 指定特定节点进行搜索并使用片段获取结果?

How can I search by specifying a specific node with MarkLogic and get results with a snippet?

我想对在 MarkLogic 数据库中注册的文档执行以下操作。

  1. 搜索前,将搜索词与其相关文档相关联
  2. 仅搜索与搜索词相关的文档并使用代码段获取结果

如果您想获得一个片段作为搜索结果,我想使用搜索 API 搜索:搜索或搜索:解析功能。 但是,与cts:search函数不同的是,这些函数不能指定一个节点作为参数,所以看起来你不能只搜索一个特定的节点(文档)。

cts:搜索:

cts:search(
    $expression as node()*,
    $query as cts:query?,
    [$options as (cts:order|xs:string)*],
    [$quality-weight as xs:double?],
    [$forest-ids as xs:unsignedLong*]
) as node()*

搜索:解决:

search:resolve(
    $query as element(),
    [$options as element(search:options)?],
    [$start as xs:unsignedLong?],
    [$page-length as xs:unsignedLong?]
) as element(search:response)

如果您仅搜索特定文档(节点)并知道如何获取搜索结果片段,请告诉我。

我认为您正在寻找可以放入 <search:options><searchable-expression>。另请参阅:

HTH!