2013-03-07 44 views
1

该场景 - 我正在构建一个网站以容纳大量报告 - 针对不同报告类别的主网站下的三十个子网站,以及每个网站中的几个库,一个为每个单独的报告。总共有三十个报告类别(站点)大约有600个报告(库)。这个设计已经决定,并且不能改变。Sharepoint 2010 - 将“u”参数传递给高级搜索

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

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

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

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

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

我的挑战是找到一种方法来养活该参数的高级搜索,并得到它把它钉住到其生成的查询结束(地址留下转义为清楚起见)。

我相信只要有一点烦躁的web部件就可以完成,但我需要向正确的方向推动一下。或者,像往常一样,如果你们都有更加光明的想法,我可以做到这一点。

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

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

回答

0

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

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

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

+0

这是不稳定的关闭,但问题是我需要使用高级搜索来生成我的查询,而不是一个简单的搜索框。我发现了许多扩展或改变基本搜索框的方法,但经过更多研究后,我发现高级搜索webpart是一种密封类型,所以我甚至无法进入它来对付它。 在Advanced生成新的URL并且重定向完成之前,是否有一个事件可以检查?这很重要,可以帮助我确定参数。 – VBartilucci 2013-03-14 14:31:29

1

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

+0

是的,应该这样做,再加上另一个功能来实现路径。 但是,Sharepoint页面中的行踪是否可以放入该重写函数,以便在SP页面动态构建时取代自动生成的行为? – VBartilucci 2014-07-17 17:16:19

+0

我使用了我在每个搜索页上放置的内容编辑器 – user13186 2014-07-21 16:42:25