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

Pan*_*shi 4 marklogic

如果搜索字符串中有下划线(_)和%等字符,则结果计数和构面数与搜索结果不匹配.

我有一个搜索结果是正确的,但结果计数和方面计数来得更多.我正在使用搜索:解析并传递结构化cts:query作为参数.

请提出可能是什么问题及其解决方案.

wst*_*wst 7

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

有几种方法可以解决这个问题.最简单的方法是指定选项<search-option>unfiltered</search-option>,并运行未经过滤的查询.但是,这意味着方面和结果计数中的任何不准确性也将反映在搜索结果中.

最准确的方法是配置索引和查询,以便仅使用索引返回正确的结果.这可能需要一些试验和错误.通常,您希望确保使用searchable-expression也是文档或片段根目录.对于符号字符,请考虑exact在查询中添加选项并启用字位置索引.这可能足以使其适用于您的情况,但是,有关此主题的详细信息,请参阅"查询性能和调优指南":

https://docs.marklogic.com/guide/performance/unfiltered