人们使用部分名称在SharePoint中搜索

时间:2010-11-17 15:57:21

标签: search sharepoint-2007

我的雇主正在将其内部门户切换到SharePoint。上一个门户网站的一个高度使用的功能是允许部分名称的“人物搜索”。 SharePoint 2007默认为关键字搜索,这些搜索仅与作为搜索词给出的确切单词匹配。它可以进行全文搜索,但您必须提供属性名称,例如“FirstName:tom”(当然没有引号)。这适用于程序化解决方案,但不适用于最终用户。

SharePoint 2007中是否有办法让用户使用部分名称搜索人员?

1 个答案:

答案 0 :(得分:2)

我发现这个解决方案对我们来说效果很好。

将ContentEditor Web部件添加到目标页面,然后转到HTML编辑器按钮。添加以下HTML代码。它创建两个输入字段(firstname / lastname),然后创建一个查询,其搜索项包含在属性搜索中,将调用全文搜索。

注意:您需要使用适当的配置位置替换搜索结果页。

<script language="javascript">
//function to handle enter on keyboard
function txtWildPeopleFinder_KeyDown(e)
{
  if (e.keyCode == 13 || e.keyCode==10)
  {
    e.returnValue=false;
    DoWildPeopleSearch();
    return false;
  }
  else
    return true;
}
//escape apostrophes in search strings
function escapestr(str)
{
 return str.replace("'","%22");
}

//search function
function DoWildPeopleSearch()
{
var firstname = escapestr(document.all["firstname"].value);
var lastname =  escapestr(document.all["lastname"].value);
var url;

//search on last name
if(firstname == "")
{
 url = "/searchcenter/Pages/peopleresults.aspx?k=LastName%3A" + lastname;
 window.location=url;
 return;
}

//search on first name
if(lastname == "")
{
 url = "/searchcenter/Pages/peopleresults.aspx?k=FirstName%3A" + firstname;
 window.location=url;
 return;
}

//first and last
 url = "/searchcenter/Pages/peopleresults.aspx?k=lastname%3A" + lastname +  "%20FirstName%3A" + firstname;
 window.location=url;
 return;
}
</script>

<table cellpadding="2" cellspacing="0" border="0" width="100%" ID="Table3">
 <tr>
  <td width="80" nowrap>
   First Name:
  </td>
  <td width="100%">
   <input size="20" maxlength="100" id="firstname" name="firstname" type="text" onkeydown="txtWildPeopleFinder_KeyDown(event)">
  </td>
 </tr>
 <tr>
  <td width="80" nowrap>
   Last Name:
  </td>
  <td>
   <input size="20" maxlength="100" id="lastname" name="lastname" type="text" onkeydown="txtWildPeopleFinder_KeyDown(event)">
  </td>
 </tr>
 <tr>
  <td> &nbsp; </td>
  <td>
   <input type="button" onclick="DoWildPeopleSearch()" value="Search">
  </td>
 </tr>

</table>