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

时间:2015-11-01 15:27:16

标签: marklogic

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

我有一个搜索结果是正确的,但结果计数和方面计数不止于此。我正在使用搜索:解析并传递结构化cts:query作为参数。

可能是什么问题及其解决方案,请建议。

1 个答案:

答案 0 :(得分:7)

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

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

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

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