3

UIMA と Solr を接続しようとしています。Solr 3.5 distをダウンロードし、cygwin経由でsolrcellとcurlを使用して、Windows 7でnutchとtikaで正常に実行しています。まず、6 つの jar をsolrsolr/contrib/uima/libで作業する場所にコピーしました。/lib次に、readme.txtファイルを読み込んで、 solrconfig.xmlschema.xmlsolr/contrib/uima/libの両方を編集しましたが、役に立ちませんでした。次に、 Alchemyや OpenCalais を使用することを気にしなかったので、もう少し適切と思われるこのリンクを見つけました。 それでも、solrcell 経由で pdf をインポートする curl コマンドを実行すると、追加の UIMA フィールドが取得されず、ログにも何も取得されません。ただし、test.pdfは解析され、Solrで次を使用してpdfが表示されます。

curl 'http://localhost:8080/solr/update/extract?fmap.content=content&literal.id=doc1&commit=true' -F "file=@test.pdf"

SolrConfig.XML

<updateRequestProcessorChain name="uima">
  <processor class="org.apache.solr.uima.processor.UIMAUpdateRequestProcessorFactory">
    <lst name="uimaConfig">
      <lst name="runtimeParameters">
        <str name="host">http://localhost</str>
        <str name="port">8080</str>
      </lst>
      <str name="analysisEngine">C:\uima\desc\com\rondhuit\uima\desc\NextAnnotatorDescriptor.xml</str>
      <bool name="ignoreErrors">true</bool>
      <str name="logField">id</str>
      <lst name="analyzeFields">
        <bool name="merge">false</bool>
        <arr name="fields">
          <str>content</str>
        </arr>
      </lst>
      <lst name="fieldMappings">
        <lst name="type">
          <str name="name">com.rondhuit.uima.next.NamedEntity</str>
          <lst name="mapping">
            <str name="feature">entity</str>
            <str name="fieldNameFeature">uname</str>
            <str name="dynamicField">*_sm</str>
          </lst>
        </lst>
      </lst>
    </lst>
  </processor>
  <processor class="solr.LogUpdateProcessorFactory" />
  <processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>

<requestHandler name="/update/uima" class="solr.XmlUpdateRequestHandler">
  <lst name="defaults">
    <str name="update.chain">uima</str>
  </lst>
</requestHandler>

そして、私はrequestHanderも調整しました:

<requestHandler name="/update" class="solr.XmlUpdateRequestHandler">
    <lst name="defaults">
      <str name="update.processor">uima</str>
    </lst>
  </requestHandler>

スキーマ.XML

<!-- fields for UIMA -->
<field name="uname" type="string" indexed="true" stored="true" multiValued="true" required="false"/>
<dynamicField name="*_sm"  type="string"  indexed="true"  stored="true"/>

私がやろうとしているのは、UIMA にテキストから名前を引き出してもらい (デモとして開始するためだけに)、何が間違っているのかを理解できないことだけです。これを読んでくれてありがとう。

4

1 に答える 1

1

これが対処されたかどうかはわかりませんが、他の誰かが見ている場合に備えて、私は昨日同じ問題を抱えていました. /update/extract を呼び出して solrcell を使用していたことがわかりました。solrcell は /update に統合されているため、uima を使用していません。

于 2013-10-31T14:14:48.290 に答える