对于我的研究,我应该将俄语维基百科的转储导入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
}
我还尝试使用作者的脚本进行测试。有同样的错误。我不知道该怎么办。请帮助修复它。
答案 0 :(得分:1)
Wikipedia转储目前从ElasticSearch 1.7.5导出。最有可能(我没有测试过)当前的映射与ES 2.2不兼容。尝试使用旧版本的ES可能是值得的。
编辑:最新的转储现在与elasticsearch 2.x
兼容