XML-данные результатов поиска возвращают первую строку текста в качестве заголовка результата вместо поля заголовка для некоторых файлов .doc - PullRequest
0 голосов
/ 07 сентября 2010

Извините за очень длинный заголовок, я просто пытался описать:)

У меня есть несколько документов Word, хранящихся в библиотеке документов в центре документов.Для большинства документов, когда я ищу термин, содержимое, находящееся в поле «Заголовок», возвращается в узел заголовка результата в XML-файле «Результат поиска».Однако есть ряд документов, которые возвращают первую строку текста в содержании документа в качестве заголовка.Это очень странное поведение, и я не могу найти способ это исправить.Я исследовал сопоставления свойств метаданных и посмотрел на свойство 'Title', и он получает следующие сопоставления в следующем порядке:

  1. Mail: 5 (Text)
  2. People: PreferredName(Текст)
  3. Базовый: displaytitle (Текст)
  4. ows_Title (Текст)

Как вы уже догадались, они такие же, как настройки по умолчанию и имеютне был изменен.Я попытался настроить сопоставления и изменить их порядок, но проблема не устраняется.Я не вижу, как какое-либо из этих сопоставлений возвратило бы первую строку текста из документа, когда ни одно из них не детализировало его.

Как, черт возьми, я получаю результаты поиска, чтобы показать поле заголовка документов?

Это XML-файл SPItem:

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 Ответ

1 голос
/ 02 декабря 2010

Эта проблема возникает, когда SharePoint 2010 индексирует документы Word 2003 (.doc).

Я работал над этим, используя имя файла в качестве свойства отображения для всех документов.

Вам необходимо отредактировать веб-часть результатов поиска (мои изменения были показаны ** изменениями **):

Добавить имя файла к выбранным элементам:

<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>**
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...