Benutzerdefinierte XML-Elementverarbeitung

Letzte Änderung: Dienstag, 22. Juni 2010

Gilt für: SharePoint Server 2010

Inhalt dieses Artikels
Übersicht über XML-Mapper
Durchforsten von XML-Inhalt
Formaterkennung und Elementanalyse
Anpassen der Datei "xmlmapper.xml"
Format der Datei "xmlmapper.xml"
Beispiel für eine XML-Mapper-Konfiguration

Die Pipeline für die Elementverarbeitung in FAST Search Server 2010 for SharePoint enthält eine optionale XML-Mapper-Phase zum Erstellen durchforsteter Eigenschaften aus bestimmten Bestandteilen durchforsteter XML-Elemente. Weitere Informationen zum Aktivieren der XML-Mapper-Phase in der Pipeline für die Elementverarbeitung finden Sie unter Konfigurieren der optionalen Elementverarbeitung.

In diesem Artikel wird beschrieben, wie Sie wie folgt die Eigenschaftenzuordnung mithilfe der Konfigurationsdatei xmlmapper.xml konfigurieren:

Übersicht über XML-Mapper

Verwenden Sie XML-Mapper zum Durchforsten von Web- und Dateifreigaben für XML-basierte Dokumente, die eine benutzerdefinierte Extraktion und Transformation erfordern. Durch Aktivieren von XML-Mapper in der Pipeline werden alle durchforsteten Elemente, bei denen es sich um XML-basierte Dokumente handelt, zugeordnet. Verwenden Sie XML-Mapper nicht zum Durchforsten unbekannter Inhalte oder mehrerer Quellen, da die Konfiguration versehentlich mit bedeutungslosen durchforsteten XML-Elementen übereinstimmen könnte.

Mit XPath 1.0 in Verbindung mit Funktionalität der Konfigurationsdatei selbst geben Sie an, welche Teile des XML-Inhalts zugeordnet werden sollen. Beispielsweise können Sie mehrere Ausdrücke verarbeiten, Trennzeichen hinzufügen, Zeichenfolgen teilen und Leerzeichen entfernen.

Für jede Zuordnungsanweisung geben Sie an, welchen durchforsteten Eigenschaften der extrahierte XML-Inhalt zugeordnet wird. Weitere Informationen zu durchforsteten Eigenschaften finden Sie unter Planen des Indexschemas (FAST Search Server 2010 for SharePoint) und Indexschemareferenz.

Durchforsten von XML-Inhalt

Durch Aktivieren von XML-Mapper in der Pipeline werden alle durchforsteten Elemente, bei denen es sich um XML-basierte Dokumente handelt, zugeordnet. Sie sollten deshalb sicherstellen, dass Sie nur bekannte XML-Inhalte durchforsten. Wenn Sie unbekannte Inhalte oder mehrere Quellen durchforsten, könnten versehentlich Übereinstimmungen mit durchforsteten XML-Elementen gefunden werden, die die zugeordneten XML-Elemente für andere Zwecke verwenden. Fehlerhafte Metadaten im Index könnten die Folge sein.

Für das Durchforsten von XML-Inhalt in FAST Search Server 2010 for SharePoint gibt es zwei grundlegende Möglichkeiten.

  • Durchforsten Sie XML-Dokumente mit dem Inhalts-SSA (FAST Search-Konnektor). Auf diese Weise können Sie XML-Dokumente von Webservern, Dateifreigaben und SharePoint-Dokumentbibliotheken abrufen.

    HinweisHinweis

    Ein durchforstetes Element kann mehrere Bestandteile aufweisen, wie z. B. ein SharePoint-Listenelement oder eine E-Mail-Nachricht mit mehreren Anlagen. Der XML-Mapper ordnet XML-Inhalt zu, der nur im ersten (Haupt-) Teil des durchforsteten Elements vorkommt, nicht in den Anlagen.

  • Verwenden Sie den FAST Search-Datenbankkonnektor zum Abrufen von XML-Inhalt aus einer Spalte in einer Datenbanktabelle (weitere Informationen finden Sie unter Durchforsten von Datenbankinhalt mit dem FAST Search-Datenbankkonnektor in Microsoft TechNet). In der SQL-basierten Durchforstungsregel können Sie angeben, dass eine bestimmte Spalte in einer Datenbanktabelle der vordefinierten internen Eigenschaft data zugeordnet wird. Diese interne Eigenschaft enthält bei der Übergabe von einem Indexing Connector an die Pipeline für die Elementverarbeitung auch den Hauptinhalt eines Dokuments.

    Das folgende Beispiel veranschaulicht eine einfache Durchforstungsregel, mit der eine XML-basierte formale Beschreibung eines Produkts aus der Product-Tabelle in die interne Eigenschaft data abgerufen wird.

    SELECT Product.formalDescription AS data FROM Product
    
    Wichtiger HinweisWichtig

    Die data-Eigenschaft kann nicht als durchforstete Eigenschaft zugeordnet werden, wird aber in diesem Fall verarbeitet, da der Inhalt ein XML-Dokument darstellt. Die Hinweise zum Inhaltstyp unter Formaterkennung und Elementanalyse gelten auch für diese Art von Elementen.

Formaterkennung und Elementanalyse

Die Pipeline für die Elementverarbeitung erkennt den Inhaltstyp durch Analysieren der tatsächlichen Daten im abgerufenen Element. Wenn das Element gültiges XML enthält, wird es als XML behandelt und mit dem XML-Mapper konvertiert. Manche XML-Inhalte enthalten möglicherweise keine gültigen XML-Deklarationen und enthalten möglicherweise Elementnamen, die in HTML häufig verwendet werden. In diesen Fällen könnten die durchforsteten XML-Elemente fälschlicherweise für HTML-Elemente gehalten werden. Eine Möglichkeit, dieses Problem zu vermeiden, ist das Umgehen der Formaterkennung für durchforstete Elemente mit der Dateinamenerweiterung XML. Fügen Sie dazu in der Konfigurationsdatei user_converter_rules.xml die folgende Konvertierungsregel hinzu.

<ConverterRules>
   <IFilter>
      <trust>
         <ext name=".xml" mimetype="text/xml" />
      </trust>
   </IFilter>
</ConverterRules>

Durch diese Konfiguration wird sichergestellt, dass Dateien mit der Erweiterung XML immer als XML-Inhalt behandelt werden. Weitere Informationen finden Sie unter Konfigurieren von FAST Search Server für SharePoint für die Verwendung eines IFilters eines Drittanbieters.

Die Pipeline für die Elementverarbeitung ordnet den Hauptteil aller Elemente der verwalteten Eigenschaft body zu, einschließlich XML-Elementen. Dies bedeutet, dass der Inhalt aller Elemente und Attribute im standardmäßigen Volltextindex und in der verwalteten Eigenschaft body durchsuchbar ist. Dies geschieht zusätzlich zur optionalen Zuordnung durch den XML-Mapper. Wenn das XML teilweise (oder vollständig) aus Metadaten besteht, sollten Sie die Zuordnung eventuell präziser steuern. Sie können einen ganz bestimmten Teil des XML (oder sogar einen Dummywert) der verwalteten Eigenschaft body zuordnen. Im folgenden Verfahren wird diese Zuordnung beschrieben.

So ordnen Sie einen bestimmten XML-Inhalt der verwalteten Eigenschaft "body" zu

  1. Geben Sie eine XML-Mapper-Konfiguration an, mit der bestimmte Teile des XML einer neuen durchforsteten Eigenschaft mit einem eindeutigen Namen zugeordnet werden.

  2. Definieren Sie eine Zuordnung dieser durchforsteten Eigenschaft zur verwalteten Eigenschaft body. Weitere Informationen finden Sie unter Verwalten durchforsteter Eigenschaften mithilfe von Windows PowerShell (FAST Search Server 2010 for SharePoint) in Microsoft TechNet.

  3. Stellen Sie sicher, dass für body das Kennzeichen MergeCrawledProperties im Indexschema festgelegt ist. Weitere Informationen finden Sie unter Verwalten verwalteter Eigenschaften mithilfe von Windows PowerShell (FAST Search Server 2010 for SharePoint) in TechNet.

Anpassen der Datei "xmlmapper.xml"

Zum Ändern dieser Konfigurationsdatei müssen Sie Mitglied der lokalen Gruppe FASTSearchAdministrators auf dem Verwaltungsknoten für FAST Search Server 2010 for SharePoint sein.

So ändern Sie die Datei "xmlmapper.xml"

  1. Stellen Sie sicher, dass die XML-Mapper-Phase in der Pipeline für die Elementverarbeitung aktiviert ist. Weitere Informationen finden Sie unter Konfigurieren der optionalen Elementverarbeitung.

  2. Erstellen Sie im Verwaltungsknoten die folgende Datei, falls sie noch nicht vorhanden ist: %FASTSEARCH%\etc\config_data\DocumentProcessor\XMLMapper.xml.

  3. Bearbeiten Sie die Datei %FASTSEARCH%\etc\config_data\DocumentProcessor\XMLMapper.xml in einem Text-Editor.

  4. Führen Sie den Befehl psctrl reset aus, um alle derzeit im System ausgeführten Elementprozessoren zurückzusetzen.

Format der Datei "xmlmapper.xml"

Die Datei xmlmapper.xml weist die folgende grundlegende Struktur auf.

<XMLPropertiesCreator>
  <propset>propertySetValue</propset> 
  <type>variantTypeValue</type> 
  <paragraph-sep>paragraphSeparatorValue</paragraph-sep>
  <XMLMappings>
    <Namespace name='namespaceName' uri='uriName' />
    <Mapping path='XPath' attr='propName' propset='GUID' type='varType'
             sep-str='separator' post-str='postString'
             ignore-whitespace='yes|no' strip-tags='yes|no'
             shallow='yes|no' mode='append|prepend|overwrite' />

    <SubTree base-path='basePath' >
      <Mapping path='XPath' attr='propName' propset='GUID' type='varType'
               sep-str='separator' post-str='postString'
               ignore-whitespace='yes|no' strip-tags='yes|no'
               shallow='yes|no' mode='append|prepend|overwrite' />
    </SubTree> 
    <MappingGroup base-path='basePath' attr='propName' propset='GUID' type='varType' 
                                    sep-str='separator' pre-str='preString' post-str='postString' 
                                    rec-sep-str='recSeparator' rec-pre-str='recPreString' rec-post-str='recPostString' 
                                    select='merge|first|longest' mode='append|prepend|overwrite' >
      <Mapping path='XPath' sep-str='separator' post-str='postString'
               ignore-whitespace='yes|no' strip-tags='yes|no' shallow='yes|no' /> 
    </MappingGroup>
  </XMLMappings>
</XMLPropertiesCreator>

Informationen zur XML-Syntax für die einzelnen Elemente finden Sie unter XML-Mapper-Schema.

Beispiel für eine XML-Mapper-Konfiguration

Verwenden Sie für dieses Beispiel das folgende XML-Element als Inhaltseingabe.

<Document>
  <Title>My title</Title>
  <Date>2010-01-06T14:25:04Z</Date>
  <Size>128</Size>
  <Tags>
    <Tag>funny</Tag>
    <Tag>hilarious</Tag>
  </Tags>
  <Tutti>Hello</Tutti>
  <Frutti>World</Frutti>
</Document>

Das folgende Beispiel stellt eine XML-Mapper-Konfiguration dar, mit der Informationen aus einem solchen Element extrahiert werden.

<XMLPropertiesCreator>
  <propset>d6ee4933-09c4-46e3-a5e4-b3787cb4a090</propset>
  <type>31</type>
  <XMLMappings>
    <Mapping attr="mytitle" path="//Title"/>
    <Mapping attr="mysize" path="//Size" type="3"/>
    <Mapping attr="mydate" path="//Date" type="64" propset="38c35ad5-69ee-4776-886f-95961a73d52d"/>
    <Mapping attr="mytags" path="//Tag" sep-str=";"/>
    <MappingGroup attr="mymulti" base-path="/Document" select="first">
      <Mapping path="Tutti"/>
      <Mapping path="Frutti"/>
    </MappingGroup>
  </XMLMappings>
</XMLPropertiesCreator>

In diesem Beispiel wird vom XML-Mapper die in Tabelle 1 gezeigte Zuordnung verwendet.

Tabelle 1. XML-Mapper-Zuordnungen

Element

Zuordnung zu

//Title

mytitle im Eigenschaftensatz "d6ee4933-09c4-46e3-a5e4-b3787cb4a090" mit festgelegtem Varianttyp "31".

//Size

mysize im Eigenschaftensatz "d6ee4933-09c4-46e3-a5e4-b3787cb4a090" mit festgelegtem Varianttyp "3".

//Date

mydate im Eigenschaftensatz "38c35ad5-69ee-4776-886f-95961a73d52d" mit festgelegtem Varianttyp "64".

//Tag

mytags im Eigenschaftensatz "d6ee4933-09c4-46e3-a5e4-b3787cb4a090" mit festgelegtem Varianttyp "31". Mehrere Elementübereinstimmungen werden durch ein Semikolon getrennt.

/Document/Tutti

mymult im Eigenschaftensatz "d6ee4933-09c4-46e3-a5e4-b3787cb4a090" mit festgelegtem Varianttyp "31". select="first" bedeutet, dass nur das erste übereinstimmende Element gefunden wird. In diesem Fall wird der Text "Hello" extrahiert.

Siehe auch

Konzepte

XML-Mapper-Schema

Konfigurieren der optionalen Elementverarbeitung