1

场景 - 我正在构建一个站点来容纳许多报告 - 在一个主 Web 下有三十个左右的子站点,用于不同的报告类别,每个站点中有几个库,每个单独的报告一个库。总共有 30 个报告类别(站点)中的大约 600 个报告(库)。此设计已确定,不能更改。

我计划/想要一个高级搜索页面来搜索所有报告,使用各种自定义元数据列。这一点很简单,我可以开箱即用。

最重要的搜索标准之一是要搜索哪个报告,正如我所提到的,其中有很多。指令是让报告类型添加“不可见” - 他们将选择报告类别,然后选择报告类型,然后显示搜索页面。搜索应该“知道”正在搜索哪个报告。

范围选择不是一个可行的选项,因为库太多了,而且随着新报告的创建,还会添加更多库。

现在,如果我将“u”参数添加到 URL 中,我可以在结果中得到我想要的结果:

results.aspx?k="RunDate=1/23/13"&U=http://site/report_type/library"

(为清楚起见,地址未转义)

我的挑战是找到一种方法将该参数提供给高级搜索,并让它附加到其生成的查询的末尾。

我相信只需对 webpart 稍作调整就可以完成,但我需要在正确的方向上稍加推动。

或者,和往常一样,如果你们都有更聪明的想法,我可以做到。

现在,我有第二个问题,不同的报告有自己不同的元数据列集,他们只希望每个报告都显示正确的列,但一次只有一个危机。

编辑 - 经过进一步研究,我似乎无法扩展高级搜索 webpart,因为它是密封类型。有没有人可以解决这个问题,或者有我可以破解的第三方高级搜索页面?

4

2 回答 2

2

我能够通过覆盖负责重定向的 JavaScript 函数 NavigateTo(url) 找到解决此问题的方法。我的解决方案可以在这里找到

于 2014-05-20T16:17:06.337 回答
0

您实际询问的是上下文搜索框,因为该u参数类似于上下文搜索范围

我不确定标准搜索框是否可以按照您想要的方式进行配置,因此它总是添加查询字符串u=<current url>。我认为您将不得不求助于一些(即使是简单的)代码。

您可以在此处找到一个示例:在内容编辑器 Web 部件中创建 SharePoint 上下文搜索框。当然,您可以对服务器端代码做同样的事情,但由于您只想添加一个查询字符串参数,JavaScript 就足够了。

于 2013-03-07T07:23:26.383 回答