Sharepoint 2010 - 将“u”参数传递给高级搜索

时间:2013-03-07 02:13:06

标签: sharepoint search sharepoint-2010

场景 - 我正在建立一个网站来存放大量报告 - 主网上有大约三十个子网站用于不同的报告类别,每个网站有几个图书馆,每个单独的报告一个。总共有大约600个报告(图书馆)在30个报告类别(网站)中。这个设计已经决定,并且不能改变。

我计划/希望使用单个高级搜索页面,使用各种自定义元数据列搜索所有报告。这很容易,我可以开箱即用。

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

范围选择不是一个可行的选择,因为库太多了,在创建新报告时会添加更多。

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

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

(为清楚起见,未提供地址)

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

我确信只需要对网页部分进行一些小小的操作即可完成,但我需要在正确的方向上做一些推动。

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

我不确定标准搜索框是否可以按照您希望的方式进行配置,因此它始终会添加查询字符串u=<current url>。我认为你将不得不诉诸一些(即使是简单的)代码。

您可以在此处找到示例:Create a SharePoint Contextual Search Box in a Content Editor Web Part。 当然你可以用服务器端代码做同样的事情,但是因为你只想添加一个querytring参数,JavaScript就足够了。