将维基百科的索引导入Elasticsearch

时间:2016-04-07 19:36:40

标签: elasticsearch wikipedia dump

对于我的研究,我应该将俄语维基百科的转储导入Elasticsearch 2.2。但是,我决定使用维基媒体(http://dumps.wikimedia.org/other/cirrussearch/)发布的指数,而不是导入转储。为了解决这个问题,我发现了一篇文章https://www.elastic.co/blog/loading-wikipedia并尝试使用作者的脚本解决我的问题(只是替换了一些导出语句)。但是第2步中存在问题。

这是我的第2步脚本版本:

export es=localhost:9200
export site=ru.wikipedia.org
export index=ruwiki

curl -XDELETE $es/$index?pretty

curl -s 'https://'$site'/w/api.php?action=cirrus-settings-dump&format=json&formatversion=2' |
jq '{ analysis: .content.page.index.analysis, number_of_shards: 1, number_of_replicas: 0 }' |
curl -XPUT $es/$index?pretty -d @-

curl -s 'https://'$site'/w/api.php?action=cirrus-mapping-dump&format=json&formatversion=2' |
jq .content |
sed 's/"index_analyzer"/"analyzer"/' |
sed 's/"position_offset_gap"/"position_increment_gap"/' |
curl -XPUT $es/$index/_mapping/page?pretty -d @-

结果

{
  "acknowledged" : true
}
{
  "acknowledged" : true
}
{
  "error" : {
    "root_cause" : [ {
      "type" : "action_request_validation_exception",
      "reason" : "Validation Failed: 1: mapping source is empty;"
    } ],
    "type" : "action_request_validation_exception",
    "reason" : "Validation Failed: 1: mapping source is empty;"
  },
  "status" : 400
}

我还尝试使用作者的脚本进行测试。有同样的错误。我不知道该怎么办。请帮助修复它。

1 个答案:

答案 0 :(得分:1)

Wikipedia转储目前从ElasticSearch 1.7.5导出。最有可能(我没有测试过)当前的映射与ES 2.2不兼容。尝试使用旧版本的ES可能是值得的。

编辑:最新的转储现在与elasticsearch 2.x

兼容