Я пытаюсь соединить UIMA с Solr. Я скачал дистрибутив Solr 3.5, и он успешно работает с Nutch и Tika на Windows 7, используя Solrcell и Curl через Cygwin.
Для начала я скопировал 6 банок из solr/contrib/uima/lib
в рабочий /lib
в solr.
Затем я прочитал файл readme.txt в solr/contrib/uima/lib
и отредактировал оба моих solrconfig.xml и schema.xml безрезультатно.
Затем я нашел эту ссылку, которая казалась немного более применимой, так как я не хотел использовать Alchemy или OpenCalais: http://code.google.com/a/apache-extras.org/p/rondhuit-uima/?redir=1
Тем не менее, когда я запускаю команду curl, которая импортирует pdf через solrcell, я не получаю дополнительные поля UIMA и ничего не получаю в своих журналах. Файл test.pdf анализируется, и я вижу PDF в Solr, используя:
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>
И Я ТАКЖЕ РЕГУЛИРОВАЛ МОЙ ЗАПИСЬ:
<requestHandler name="/update" class="solr.XmlUpdateRequestHandler">
<lst name="defaults">
<str name="update.processor">uima</str>
</lst>
</requestHandler>
Schema.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 вытащил имена из текста (просто для демонстрации) и не мог понять, что я делаю неправильно.
Заранее благодарю за чтение.