2

送信するドキュメントの「コンテンツ」を構築するときに、メタデータ/ヘッダーなどを無視するように抽出要求ハンドラーに指示するにはどうすればよいですか?

たとえば、「SEARCHWORD」という単語だけを含み、他には何も含まないMSWordドキュメントを作成しました。ただし、このドキュメントをsolrインデックスに送信すると、その内容は次のように「body」フィールドにマップされます。

<str name="body">
    Last-Printed 2009-02-05T15:02:00Z Revision-Number 22 Comments stream_source_info 
    myfile Last-Author Inigo Montoya Template Normal.dotm Page-Count 1 subject Application-Name
     Microsoft Macintosh Word Author Jesus Baggins Word-Count 2 xmpTPg:NPages 1 Edit-Time 
    108600000000 Creation-Date 2008-11-05T20:19:00Z stream_content_type application/octet-stream 
    Character Count 14 stream_size 31232 stream_name /Applications/MAMP/tmp/php/phpHCIg7y 
    Some Company Content-Type application/msword Keywords Last-Save-Date 
    2012-05-01T18:55:00Z SEARCHWORD
</str>

私が欲しいのは、ドキュメントの本文、この場合は「SEARCHWORD」という単語だけです。

詳細については、これが私の抽出ハンドラーです。

 <requestHandler name="/update/extract" 
                 startup="lazy"
                 class="solr.extraction.ExtractingRequestHandler" >
    <lst name="defaults">
      <!-- All the main content goes into "text"... if you need to return
           the extracted text or do highlighting, use a stored field. -->
      <str name="fmap.content">body</str>
      <str name="lowernames">true</str>
      <str name="uprefix">ignored_</str>
    </lst>
  </requestHandler>
4

2 に答える 2

4

solr-user メーリング リストのすばらしい人々が、この問題の真相を突き止めました。フィールド名「meta」は特殊なケースであることがわかります。ExtractingRH はすべてのメタデータをこのフィールドにコピーします。私の場合、自分の ERH の fmap.contents マッピングのために、コンテンツも取得していました。「メタ」フィールドの名前を別の名前に変更したところ、ドキュメントのコンテンツのみを受け取るようになりました。

この動作は現在、Solr wiki で文書化されていません。これが、スキーマに「メタ」という名前のフィールドがあり、ドキュメントの内容を抽出している可能性がある他の誰かに役立つことを願っています (ありそうもないことですが、私は知っています)。

于 2012-05-03T13:16:33.413 に答える
1

XPath パラメータをデフォルトに追加してみましたか:

<str name="XPath">/xhtml:body</str>

上記のリンクが示すように、URL を使用してすばやくテストできます。

于 2012-05-02T15:03:50.690 に答える