【发布时间】:2017-08-02 22:46:25
【问题描述】:
我正在使用 Marklogic 的 search:search() 函数来处理我的应用程序中的搜索,并且我有一个用例,用户需要能够执行文本搜索,从我的文档的属性中返回匹配项。
例如,使用这个文档:
<document attr="foo attribute value">Some child content</document>
我希望用户能够对“foo”执行文本搜索(不使用约束),并根据属性 @attr 中的匹配返回我的文档。有没有办法配置查询选项以允许这样做?
键入 attr:"foo" 不是一个可行的解决方案,因此使用属性范围约束将无济于事,并且用户仍然需要能够搜索不在属性节点中的其他子内容。我在想也许有一种方法可以通过选项将 cts:query OR'd 添加到搜索中,从而允许搜索此属性?
对任何和所有其他解决方案开放。
谢谢!
编辑:
一些附加信息,以帮助澄清:
我需要能够在属性中找到匹配项,和在内容的其他地方。使用上面的示例,搜索“foo”、“child content”或“foo child content”都应该返回我的文档作为结果。这意味着任何与搜索进行“与”运算的查询选项(例如 <additional-query>,旨在帮助限制您的搜索而不是扩展它)将不起作用。我正在寻找的是(可能)一个额外的查询选项,它将与原始搜索进行 OR'd,以便允许按子节点内容、属性内容或两者的混合进行搜索。
换句话说,就搜索而言,我希望 MarkLogic 将任何属性节点内容与元素文本节点完全相同。
谢谢!!
【问题讨论】: