2017-10-28 125 views
0

我试图使用Solr 7.0索引一些wiki页面,但在最后一步中,DataImportHandler显然没有提取数据。我不知道发生了什么,因为没有错误被抛出。Solr DIH XML不提取

当我打电话给http://localhost:8983/solr/mycore/dataimport?command=full-import两种不同的行为是显而易见的。

我的第一个请求的第一个响应是。

{ 
    "responseHeader":{ 
     "status":0, 
     "QTime":75 
    }, 
    "initArgs":[ 
     "defaults",[ 
      "config","data-config.xml" 
     ] 
    ], 
    "command":"full-import", 
    "status":"idle", 
    "importResponse":"", 
    "statusMessages":{} 
} 

,当我刚刚再次按Enter键是第二个响应。

{ 
    "responseHeader":{ 
     "status":0, 
     "QTime":26 
    }, 
    "initArgs":[ 
     "defaults",[ 
      "config","data-config.xml" 
     ] 
    ], 
    "command":"full-import", 
    "status":"idle", 
    "importResponse":"", 
    "statusMessages":{ 
     "Total Requests made to DataSource":"0", 
     "Total Rows Fetched":"2", 
     "Total Documents Processed":"0", 
     "Total Documents Skipped":"0", 
     "Full Dump Started":"2017-10-28 07:05:31", 
     "":"Indexing completed. Added/Updated: 0 documents. Deleted 0 
      documents.", 
     "Committed":"2017-10-28 07:05:31", 
     "Time taken":"0:0:0.449" 
    } 
} 

正如你在第二个答案中看到的,DIH找到了2个文件。这正是我在测试文件wiki.xml中的文档编号。问题是DIH没有提取,因为您可能会注意到Indexing completed. Added/Updated: 0 documents. Deleted 0 documents.

这是我的Solr配置:git gist。我正在使用Windows 10,Solr 7.0和Lucene 7.0。

我到目前为止已经试过......

  • 其中之一,我试图提取的是“用户”,但也有一些违规行为与它的数据,例如,在<contributor> XML标签有一些时间两个子标签<username>(用户昵称)和<id>(用户ID),当用户有一个帐户和其他一些时间,当用户没有一个帐户<contributor>出现只有一个子标签<ip>。所以我只是尝试导入没有“用户”数据的数据。
  • 我只是想获得唯一的ID和标题。为此,我对data-config.xml中的其他字段发表评论。

这些测试没有人工作。

回答

0

你的问题很简单,你的entity标签最初是关闭的,所以以下所有fields标签都被忽略。

所以,你需要用刚<entity>

事后添加</entity>标签和替换<entity/>但是,你仍然solrconfig.xml中包含一个错误,您正在使用ClassicIndexSchemaFactory,但你必须AddSchemaFieldsUpdateProcessorFactory,这将导致异常。您应该将经典模式工厂替换为受管理的工厂,或者只是删除此添加字段更新处理器工厂。