MOSS Search学习记录(九):高级搜索定制(下)

最后介绍高级搜索定制中最复杂的部分。在高级搜索页面中高级搜索框这个Web部件,有个属性选项卡。其中包含了一个高级搜索页面的XML描述配置文件。默认内容如下,我们一块一块来分析。

1.打开高级搜索页面,点击页面上的“网站操作——编辑页面”,进入到页面的编辑模式。

2.点击高级搜索框WebPart的编辑菜单,选择“修改共享 Web 部件”,打开部件的属性配置窗口。

3.展开第三个配置部分“属性”。可以看到3可配置属性,显示属性、属性部分标签、属性。
    

4.显示属性


这个属性用来控制高级搜索页面中第三部分的显示和隐藏。

例如,将其设置为未选中状态,即不显示“添加属性限制”的部分,效果如下

5.属性部分标签


这个属性用来控制下图中红色部分的文本内容,如果内容为空的话则显示为默认文字“添加属性限制
”。

修改为“添加属性查询条件”,效果如下

6.属性


可以看出,属性的内容是一个
XML描述文件。

默认内容如下:

<rootxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

     <LangDefs>

         <LangDefDisplayName="阿拉伯语"LangID="1"/>

         <LangDefDisplayName="孟加拉语"LangID="69"/>

         <LangDefDisplayName="保加利亚语"LangID="2"/>

         <LangDefDisplayName="加泰罗尼亚语"LangID="3"/>

         <LangDefDisplayName="中文"LangID="4"/>

         <LangDefDisplayName="克罗地亚语/塞尔维亚语"LangID="26"/>

         <LangDefDisplayName="捷克语"LangID="5"/>

         <LangDefDisplayName="丹麦语"LangID="6"/>

         <LangDefDisplayName="荷兰语"LangID="19"/>

         <LangDefDisplayName="芬兰语"LangID="11"/>

         <LangDefDisplayName="法语"LangID="12"/>

         <LangDefDisplayName="德语"LangID="7"/>

         <LangDefDisplayName="希腊语"LangID="8"/>

         <LangDefDisplayName="古吉拉特语"LangID="71"/>

         <LangDefDisplayName="希伯来语"LangID="13"/>

         <LangDefDisplayName="印地语"LangID="57"/>

         <LangDefDisplayName="匈牙利语"LangID="14"/>

         <LangDefDisplayName="冰岛语"LangID="15"/>

         <LangDefDisplayName="印度尼西亚语"LangID="33"/>

         <LangDefDisplayName="意大利语"LangID="16"/>

         <LangDefDisplayName="日语"LangID="17"/>

         <LangDefDisplayName="卡纳达语"LangID="75"/>

         <LangDefDisplayName="朝鲜语"LangID="18"/>

         <LangDefDisplayName="拉脱维亚语"LangID="38"/>

         <LangDefDisplayName="立陶宛语"LangID="39"/>

         <LangDefDisplayName="马来语"LangID="62"/>

         <LangDefDisplayName="马拉雅拉姆语"LangID="76"/>

         <LangDefDisplayName="马拉地语"LangID="78"/>

         <LangDefDisplayName="挪威语"LangID="20"/>

         <LangDefDisplayName="波兰语"LangID="21"/>

         <LangDefDisplayName="葡萄牙语"LangID="22"/>

         <LangDefDisplayName="旁遮普语"LangID="70"/>

         <LangDefDisplayName="罗马尼亚语"LangID="24"/>

         <LangDefDisplayName="俄语"LangID="25"/>

         <LangDefDisplayName="斯洛伐克语"LangID="27"/>

         <LangDefDisplayName="斯洛文尼亚语"LangID="36"/>

         <LangDefDisplayName="西班牙语"LangID="10"/>

         <LangDefDisplayName="瑞典语"LangID="29"/>

         <LangDefDisplayName="泰米尔语"LangID="73"/>

         <LangDefDisplayName="泰卢固语"LangID="74"/>

         <LangDefDisplayName="泰语"LangID="30"/>

         <LangDefDisplayName="土耳其语"LangID="31"/>

         <LangDefDisplayName="乌克兰语"LangID="34"/>

         <LangDefDisplayName="乌尔都语"LangID="32"/>

         <LangDefDisplayName="越南语"LangID="42"/>

     </LangDefs>

     <Languages>

         <LanguageLangRef="4"/>

         <LanguageLangRef="12"/>

         <LanguageLangRef="7"/>

         <LanguageLangRef="17"/>

         <LanguageLangRef="10"/>

     </Languages>

     <PropertyDefs>

         <PropertyDefName="Path"DataType="text"DisplayName="URL"/>

         <PropertyDefName="Size"DataType="integer"DisplayName="大小"/>

         <PropertyDefName="Write"DataType="datetime"DisplayName="上次修改日期"/>

         <PropertyDefName="FileName"DataType="text"DisplayName="名称"/>

         <PropertyDefName="Description"DataType="text"DisplayName="说明"/>

         <PropertyDefName="Title"DataType="text"DisplayName="标题"/>

         <PropertyDefName="Author"DataType="text"DisplayName="作者"/>

         <PropertyDefName="DocSubject"DataType="text"DisplayName="主题"/>

         <PropertyDefName="DocKeywords"DataType="text"DisplayName="关键字"/>

         <PropertyDefName="DocComments"DataType="text"DisplayName="备注"/>

         <PropertyDefName="Manager"DataType="text"DisplayName="经理"/>

         <PropertyDefName="Company"DataType="text"DisplayName="公司"/>

         <PropertyDefName="Created"DataType="datetime"DisplayName="创建日期"/>

         <PropertyDefName="CreatedBy"DataType="text"DisplayName="创建者"/>

         <PropertyDefName="ModifiedBy"DataType="text"DisplayName="上次修改者"/>

     </PropertyDefs>

     <ResultTypes>

         <ResultTypeDisplayName="所有结果"Name="default">

              <Query/>

              <PropertyRefName="Author" />

              <PropertyRefName="Description" />

              <PropertyRefName="FileName" />

              <PropertyRefName="Size" />

              <PropertyRefName="Path" />

              <PropertyRefName="Created" />

              <PropertyRefName="Write" />

              <PropertyRefName="CreatedBy" />

              <PropertyRefName="ModifiedBy" />

         </ResultType>

         <ResultTypeDisplayName="文档"Name="documents">

              <Query>IsDocument=1</Query>

              <PropertyRefName="Author" />

              <PropertyRefName="DocComments"/>

              <PropertyRefName="Description" />

              <PropertyRefName="DocKeywords"/>

              <PropertyRefName="FileName" />

              <PropertyRefName="Size" />

              <PropertyRefName="DocSubject"/>

              <PropertyRefName="Path" />

              <PropertyRefName="Created" />

              <PropertyRefName="Write" />

              <PropertyRefName="CreatedBy" />

              <PropertyRefName="ModifiedBy" />

              <PropertyRefName="Title"/>

              <PropertyRefName="Manager" />

              <PropertyRefName="Company"/>

         </ResultType>

         <ResultTypeDisplayName="Word 文档"Name="worddocuments">

              <Query>FileExtension='doc' Or FileExtension='docx' Or FileExtension='dot'</Query>

              <PropertyRefName="Author" />

              <PropertyRefName="DocComments"/>

              <PropertyRefName="Description" />

              <PropertyRefName="DocKeywords"/>

              <PropertyRefName="FileName" />

              <PropertyRefName="Size" />

              <PropertyRefName="DocSubject"/>

              <PropertyRefName="Path" />

              <PropertyRefName="Created" />

              <PropertyRefName="Write" />

              <PropertyRefName="CreatedBy" />

              <PropertyRefName="ModifiedBy" />

              <PropertyRefName="Title"/>

              <PropertyRefName="Manager" />

              <PropertyRefName="Company"/>

         </ResultType>

         <ResultTypeDisplayName="Excel 文档"Name="exceldocuments">

              <Query>FileExtension='xls' Or FileExtension='xlsx' Or FileExtension='xlt'</Query>

              <PropertyRefName="Author" />

              <PropertyRefName="DocComments"/>

              <PropertyRefName="Description" />

              <PropertyRefName="DocKeywords"/>

              <PropertyRefName="FileName" />

              <PropertyRefName="Size" />

              <PropertyRefName="DocSubject"/>

              <PropertyRefName="Path" />

              <PropertyRefName="Created" />

              <PropertyRefName="Write" />

              <PropertyRefName="CreatedBy" />

              <PropertyRefName="ModifiedBy" />

              <PropertyRefName="Title"/>

              <PropertyRefName="Manager" />

              <PropertyRefName="Company"/>

         </ResultType>

         <ResultTypeDisplayName="演示文稿"Name="presentations">

              <Query>FileExtension='ppt'</Query>

              <PropertyRefName="Author" />

              <PropertyRefName="DocComments"/>

              <PropertyRefName="Description" />

              <PropertyRefName="DocKeywords"/>

              <PropertyRefName="FileName" />

              <PropertyRefName="Size" />

              <PropertyRefName="DocSubject"/>

              <PropertyRefName="Path" />

              <PropertyRefName="Created" />

              <PropertyRefName="Write" />

              <PropertyRefName="CreatedBy" />

              <PropertyRefName="ModifiedBy" />

              <PropertyRefName="Title"/>

              <PropertyRefName="Manager" />

              <PropertyRefName="Company"/>

         </ResultType>

     </ResultTypes>

</root>

整体XML描述看起来很长,其实内容不多,很简单,包括如下几大部分。

<LangDefs>可搜索的语言

<Languages>提供选择的语言

<PropertyDefs>添加属性限制中属性字段的定义

<ResultTypes>结果类型定义

<rootxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

     <LangDefs>语言类型定义部分)

         <LangDefDisplayName="阿拉伯语"LangID="1"/>具体语言定义)

         ……

         <LangDefDisplayName="中文"LangID="4"/>

         ……

     </LangDefs>

     <Languages>提供搜索选择语言定义部分)

         <LanguageLangRef="4"/>可选搜索语言定义)

         ……

     </Languages>

     <PropertyDefs>搜索属性限制定义部分)

         ……

         <PropertyDefName="Title"DataType="text"DisplayName="标题"/>属性限制定义)

         ……

     </PropertyDefs>

     <ResultTypes>结果类型定义部分)

         <ResultTypeDisplayName="所有结果"Name="default">具体结果类型定义)

              <Query/>查询条件)

              <PropertyRefName="Author" />此结果类型可查询字段定义)