使用MarkLogic search:search时如何排除特定路径

使用MarkLogic search:search时如何排除特定路径,marklogic,Marklogic,我在MarkLogic数据库中有xml文档,在多个路径上有一个description元素。例如../program/description和../certification/description。对于特定搜索,我只想排除../certification/description 由于我不想从所有搜索中排除../certification/description,因此我不想使用数据库word queryconfig来执行此操作 非常感谢您的帮助。当您无法使用内置的include和exclude选项

我在MarkLogic数据库中有xml文档,在多个路径上有一个
description
元素。例如
../program/description
../certification/description
。对于特定搜索,我只想排除
../certification/description

由于我不想从所有搜索中排除
../certification/description
,因此我不想使用数据库
word query
config来执行此操作


非常感谢您的帮助。

当您无法使用内置的include和exclude选项时,您会感到非常有趣

我可以想到几个选择:

  • 为描述的每个位置(程序描述、认证描述)设置一个字段。
    • 然后,您可以使用cts:field-[value | word]-query查询它们,这两种方法都采用字段名的序列。因此,您可以打开和关闭包含的内容
  • 对路径范围索引的影响相同
以上两种情况都会增加一些存储开销(对于字段,索引时会有少量的开销)。但它确实允许您优雅地切换包含哪些位置


另一个选项是通过使用as容器限定查询范围并仅包括目标描述。在本例中,只针对程序元素及其子元素。

我最终将
认证/描述
数据移动到一个属性(
认证/描述
)中,该属性应为我们提供所需的行为。

谢谢David。我们希望我们的文字搜索包括文档中除认证/描述之外的所有文本。我们最终将认证/描述数据移动到一个属性(certification/@description)中,该属性应该提供我们想要的效果。