Проблема с получением имени файла в результатах поиска solr (8.1) - PullRequest
0 голосов
/ 09 июля 2019

Я хочу получить имя файла в результатах поиска в Solr 8.1, но оно не работает.

Обратите внимание: я нашел все связанные Вопросы здесь, но они либо устарели, либо не работают дляя.

Я только начал с Solr 8.1 и после проработки учебника я начал создавать новую коллекцию в режиме без схемы.

Я скопировал tika-data-config.xml из /example/example-DIH/solr/tika/conf/ и назвал его my_tika-data-config.Затем я изменил строку: <field column="file" name="id"/> на <field column="file" name="fileName"/>:

<dataConfig>
  <dataSource type="BinFileDataSource"/>
  <document>
    <entity name="file" processor="FileListEntityProcessor" dataSource="null"
            baseDir="${solr.install.dir}/example/exampledocs" fileName=".*pdf"
            rootEntity="false">

      <field column="file" name="fileName"/>

      <entity name="pdf" processor="TikaEntityProcessor"
              url="${file.fileAbsolutePath}" format="text">

        <field column="Author" name="author" meta="true"/>
        <!-- in the original PDF, the Author meta-field name is upper-cased,
          but in Solr schema it is lower-cased
         -->

        <field column="title" name="title" meta="true"/>
        <field column="dc:format" name="format" meta="true"/>

        <field column="text" name="text"/>

      </entity>   
    </entity>
  </document>
</dataConfig>

Затем я отредактировал solorconfig.xml, чтобы использовать DataImportHandler:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">     
      <str name="config">C:/Solr/solr-8.1.1/example/example-DIH/solr/tika/conf/my_tika-data-config.xml</str>
    </requestHandler>

В managed-schema.xml file Я добавил поле «fileName» следующим образом:

<field name="fileName" type="string" indexed="true" stored="true"/>

Я также добавил эти строки:

<lib dir="${solr.install.dir:../../../..}/contrib/dataimporthandler/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />

в solrconfig.xml, чтобы избавиться от ошибки с импортом данныхучебный класс.

И, наконец, я переиндексировал свои 10 тестовых pdf-файлов с помощью команды (Windows):

java -jar -Dc=test_collection3 -Dauto example\exampledocs\post.jar Test_PDFs\*

Когда я что-то запрашиваю и фильтрую для fileName, вместо имен файлов я получаю следующее:


{
  "responseHeader":{
    "status":0,
    "QTime":0,
    "params":{
      "q":"*:*",
      "fl":"fileName",
      "_":"1562669763731"}},
  "response":{"numFound":10,"start":0,"docs":[
      {},
      {},
      {},
      {},
      {},
      {},
      {},
      {},
      {},
      {}]
  }}

Может кто-нибудь сказать, пожалуйста, где я допустил ошибку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...