搜索结果XML数据返回第一行文本作为结果标题,而不是某些.doc文件的标题字段

时间:2010-09-07 12:46:05

标签: sharepoint search sharepoint-2010

请原谅很长的标题,我只是想描述一下:)

我在文档中心的文档库中存储了许多word文档。对于搜索术语时的大多数文档,“标题”字段中的内容将在搜索结果XML的结果标题节点中返回。但是,有许多文档将文档内容中的第一行文本作为标题返回。这是非常特殊的行为,我似乎找不到解决方法。我已经调查了元数据属性映射并查看了'Title'属性,它按以下顺序检索以下映射:

  1. 邮件:5(文本)
  2. 人:PreferredName(文本)
  3. 基本:DISPLAYTITLE(文本)
  4. ows_Title(文本)
  5. 您可能已经猜到,这些与默认设置相同,并且没有更改。我试图调整映射并重新排序它们但没有任何方法可以解决问题。我没有看到这些映射中的任何一个如何从文档中返回第一行文本时没有详细说明。

    我如何获得搜索结果以显示文档的标题字段?

    这是SPItem的XML:

    ows_ContentTypeId="0x01010088DB89BAACA04F38A0BEE018DD0A5206009C6E9BFBC6CE4C099BF7D9D3BF986B550037DF08371674094BBD60CFE875673FD0"
    ows_FileLeafRef="68;#LOE_CO_GRO600_310110.doc"
    ows_Modified_x0020_By="SHAREPOINT\system"
    ows_Created_x0020_By="SHAREPOINT\system"
    ows_File_x0020_Type="doc"
    ows_Title="Growth Programme"
    ows_NotesAndInstructions="Use this letter where we facilitate growth programme sessions"
    ows_DocID="CO_GRO610"
    ows_DocumentPublicationDate="2006-11-01 00:00:00"
    ows_TaxCatchAll=""
    ows_TaxCatchAllLabel=""
    ows__dlc_DocId="DOC-2047-3109"
    ows__dlc_DocIdUrl="http://server/_layouts/DocIdRedir.aspx?ID=DOC-2047-3109, DOC-2047-3109"
    ows_SectorGroup=""
    ows_ServiceLine=""
    ows_ID="68"
    ows_ContentType="Engagement"
    ows_Created="2010-08-24 11:37:19"
    ows_Author="1073741823;#System Account"
    ows_Modified="2010-08-25 14:03:47"
    ows_Editor="1073741823;#System Account"
    ows__ModerationStatus="0"
    ows_FileRef="68;#DocumentCentre/EngagementLetters/LOE_CO_GRO600_310110.doc"
    ows_FileDirRef="68;#DocumentCentre/EngagementLetters"
    ows_Last_x0020_Modified="68;#2010-08-25 13:56:14"
    ows_Created_x0020_Date="68;#2010-08-24 11:37:20"
    ows_File_x0020_Size="68;#59392"
    ows_FSObjType="68;#0"
    ows_SortBehavior="68;#0"
    ows_PermMask="0x7fffffffffffffff"
    ows_CheckedOutUserId="68;#"
    ows_IsCheckedoutToLocal="68;#0"
    ows_UniqueId="68;#{ACE05805-6E2A-4035-A6D2-73CDF2962374}"
    ows_ProgId="68;#"
    ows_ScopeId="68;#{519A3EC0-039D-4F4C-A829-C9D17A9626E1}"
    ows_VirusStatus="68;#59392"
    ows_CheckedOutTitle="68;#"
    ows__CheckinComment="68;#"
    ows__EditMenuTableStart="LOE_CO_GRO600_310110.doc"
    ows__EditMenuTableStart2="68"
    ows__EditMenuTableEnd="68"
    ows_LinkFilenameNoMenu="LOE_CO_GRO600_310110.doc"
    ows_LinkFilename="LOE_CO_GRO600_310110.doc"
    ows_LinkFilename2="LOE_CO_GRO600_310110.doc"
    ows_DocIcon="doc"
    ows_ServerUrl="/DocumentCentre/EngagementLetters/LOE_CO_GRO600_310110.doc"
    ows_EncodedAbsUrl="http://server/DocumentCentre/EngagementLetters/LOE_CO_GRO600_310110.doc"
    ows_BaseName="LOE_CO_GRO600_310110"
    ows_FileSizeDisplay="59392"
    ows_MetaInfo="[...]vti_cachedtitle:SR|Growth Programme
vti_title:SR|Growth Programme[...]"
    ows__Level="1"
    ows__IsCurrentVersion="1"
    ows_ItemChildCount="68;#0"
    ows_FolderChildCount="68;#0"
    ows_SelectTitle="68"
    ows_SelectFilename="68"
    ows_Edit="0"
    ows_owshiddenversion="4"
    ows__UIVersion="512"
    ows__UIVersionString="1.0"
    ows_Order="6800.00000000000"
    ows_GUID="{77095282-3E97-4703-9249-A6E888F5ED70}"
    ows_WorkflowVersion="1"
    ows_ParentVersionString="68;#"
    ows_ParentLeafName="68;#"
    Etag="{ACE05805-6E2A-4035-A6D2-73CDF2962374},4"
    ows_Combine="0"
    ows_RepairDocument="0"
    ows_ServerRedirected="0"
    

1 个答案:

答案 0 :(得分:1)

当SharePoint 2010索引2003个Word文档(.doc)时,这似乎是一个问题。

我通过使用Filename作为所有文档的显示属性来解决这个问题。

您必须编辑搜索结果Web部件(我已通过**更改**显示了我的更改):

将文件名添加到提取的项目:

<Columns> **<Column Name="Filename"/>** <Column Name="WorkId"/>  <Column Name="Rank"/>  <Column Name="Title"/>  <Column Name="Author"/>  <Column Name="Size"/>  <Column Name="Path"/>  <Column Name="Description"/>  <Column Name="Write"/>  <Column Name="SiteName"/>  <Column Name="CollapsingStatus"/>  <Column Name="HitHighlightedSummary"/>  <Column Name="HitHighlightedProperties"/>  <Column Name="ContentClass"/>  <Column Name="IsDocument"/>  <Column Name="PictureThumbnailURL"/>  <Column Name="PopularSocialTags"/>  <Column Name="PictureWidth"/>  <Column Name="PictureHeight"/>  <Column Name="DatePictureTaken"/>  <Column Name="ServerRedirectedURL"/> </Columns>

然后,如果项目是文档,则必须编辑XSLT以显示文件名(确保取消选中使用位置可视化。如果不进行更改,则不会这样做)。您将不得不搜索xslt以查找下面的部分。 ** **之间的项目再次是我添加的内容。

**<xsl:if test="isdocument = 'True'">
        <xsl:value-of select="filename"/>
    </xsl:if>
    <xsl:if test="isdocument = 'False'">**
    <xsl:choose>
     <xsl:when test="hithighlightedproperties/HHTitle[. != '']">
      <xsl:call-template name="HitHighlighting">
       <xsl:with-param name="hh" select="hithighlightedproperties/HHTitle" /> 
      </xsl:call-template>   
     </xsl:when>
     <xsl:otherwise><xsl:value-of select="title"/></xsl:otherwise> 
    </xsl:choose>
    **</xsl:if>**