2014-01-08 4 views
2

Я использовал для загрузки и документы индексного слова, используя следующий URL ..Как получить имя файла индекса Word документы в Apache Solr?

java -Durl=http://localhost:8983/solr/update/extract?literal.id=1 -Dtype=application/word -jar post.jar microfost_det.doc 

Когда я запрашиваю индекс Solr возвращает XML как ..

http://localhost:8983/solr/collection1/select?q=microfost&wt=xml&indent=true 

Ответ был:

<?xml version="1.0" encoding="UTF-8"?> 
<response> 

<lst name="responseHeader"> 
<int name="status">0</int> 
<int name="QTime">0</int> 
<lst name="params"> 
<str name="indent">true</str> 
<str name="q">microfost</str> 
<str name="_">1389196238897</str> 
<str name="wt">xml</str> 
</lst> 
</lst> 
<result name="response" numFound="1" start="0"> 
<doc> 
<str name="id">1</str> 
<date name="last_modified">1601-01-01T00:00:00Z</date> 
<str name="author">fazlan </str> 
<str name="author_s">fazlan </str> 
<arr name="content_type"> 
<str>application/msword</str> 
</arr> 
<arr name="content"> 
<str> 


This is a MSWord document. Microfost. 

</str> 
</arr> 
<long name="_version_">1456677821213573120</long></doc> 
</result> 
</response> 

Теперь моя проблема: мне нужно имя документа, содержащего запрошенный текст «microfost», то есть microfost_det.doc ..

Можно ли получить имя файла Word (то есть filename.doc), который содержит запрашиваемый текст ..

.

ответ

0

В Solr поле поиска по умолчанию «» ». Вот почему вы получаете результат, поскольку он соответствует содержимому. Сначала создайте собственное строковое поле (например, docname), изменив ваш schema.xml

Затем перезапустите экземпляр Solr. Выполните следующую команду для обновления вашего документа Solr.

curl 'http://localhost:8983/solr/update?commit=true' -H 'Content-type:application/json' -d '[{"id":"1","docname":{"set":"microfost_det.doc"}}]' 

После этого выполните следующий запрос, и вы получите результат.

http://localhost:8983/solr/collection1/select?q=docname:microfost*&wt=xml&indent=true 

В противном случае, при извлечении документа выполните следующую команду

java -Durl="http://localhost:8983/solr/update/extract?literal.id=1&literal.docname=microfost_det.doc" -Dtype=application/word -jar post.jar microfost_det.doc 

Любой путь, вы должны хранить имя документа в отдельном поле.

+3

Спасибо .. но как я могу дать имя каждого документа ... Это я использовал, чтобы дать команду, о которой я упомянул в моем кратком вопросе, как .... * .doc .. Так как у меня 1000+ документов индексировать, возможно ли давать имя каждого документа –

Смежные вопросы