Marklogic 面和搜索的计数与搜索结果不同

Marklogic 面和搜索的计数与搜索结果不同,marklogic,Marklogic,当搜索字符串中有下划线(41;和%等字符时,结果计数和面计数与搜索结果不匹配 我得到了一个正确的搜索结果,但结果计数和方面计数比这更多。我使用search:parse并将结构化cts:query作为参数传递 可能存在什么问题及其解决方案,请提出建议。您的搜索结果正在被过滤,而其他值则没有。使用搜索API时,默认行为是过滤搜索结果。这意味着它首先只使用索引获取候选结果集,然后检查并删除误报。面和总结果计数只能使用索引计算,因此它们永远不会被过滤 有几种方法可以解决这个问题。最简单的方法是指定选项u

当搜索字符串中有下划线(41;和%等字符时,结果计数和面计数与搜索结果不匹配

我得到了一个正确的搜索结果,但结果计数和方面计数比这更多。我使用search:parse并将结构化cts:query作为参数传递


可能存在什么问题及其解决方案,请提出建议。

您的搜索结果正在被过滤,而其他值则没有。使用搜索API时,默认行为是过滤搜索结果。这意味着它首先只使用索引获取候选结果集,然后检查并删除误报。面和总结果计数只能使用索引计算,因此它们永远不会被过滤

有几种方法可以解决这个问题。最简单的方法是指定选项
unfiltered
,然后运行查询unfiltered。然而,这意味着方面和结果计数的任何不准确也将反映在搜索结果中

最准确的方法是配置索引和查询,以便只使用索引返回正确的结果。这可能需要一些尝试和错误。通常,您希望确保使用一个
可搜索表达式
,该表达式也是文档或片段根。在您的符号字符的情况下,考虑在查询中添加<代码>精确< /COD>选项并启用Word位置索引。这可能足以让它在您的情况下工作,但是,有关此主题的详细信息,请参阅《查询性能和调优指南》: