如果搜索字符串中有下划线(_)和%等字符,则结果计数和构面数与搜索结果不匹配。
我有一个搜索结果是正确的,但结果计数和方面计数不止于此。我正在使用搜索:解析并传递结构化cts:query作为参数。
可能是什么问题及其解决方案,请建议。
答案 0 :(得分:7)
您的搜索结果正在过滤,而其他值则没有。使用Search API时,默认行为是过滤搜索结果。这意味着它首先只使用索引获取候选结果集,然后检查并删除误报。分面和总结果计数只能使用索引计算,因此永远不会过滤它们。
有几种方法可以解决这个问题。最简单的方法是指定选项<search-option>unfiltered</search-option>
,并运行未经过滤的查询。但是,这意味着方面和结果计数的任何不准确性也将反映在搜索结果中。
最准确的方法是配置索引和查询,以便仅使用索引返回正确的结果。这可能需要一些试验和错误。通常,您希望确保使用也是文档或片段根目录的searchable-expression
。对于符号字符,请考虑在查询中添加exact
选项并启用字位置索引。这可能足以使其适用于您的情况,但是,有关此主题的详细信息,请参阅查询性能和调优指南: