我想将 wikipedia 索引到 elasticsearch。
我试过stream2es + elasticsearch 2.0.0 和 Wikipedia River 插件 2.6.0 + elasticsearch 1.6.0 索引最新的维基百科转储 https://dumps.wikimedia.org/enwiki/20151102/enwiki-20151102-pages-articles-multistream.xml.bz2 .
但是两者都得到了相同的错误信息:
XML document structures must start and end within the same entity.
最佳答案
我不确定如何使 XML 导入工作,但还有另一种选择。最近,维基媒体提供了生产 Elasticsearch 索引的可用转储。
索引每周导出一次,每个 wiki 有两次导出。
- 内容索引,仅包含文章页面: http://dumps.wikimedia.org/other/cirrussearch/20151116/enwiki-20151116-cirrussearch-content.json.gz
- 总索引,包含所有页面。这包括讨论页、模板等:http://dumps.wikimedia.org/other/cirrussearch/20151116/enwiki-20151116-cirrussearch-general.json.gz
这些是为 elasticsearch 批量导入 API 格式化的。因为那是 JSON,所以这些也可以在 elasticsearch 之外使用。
尚未记录导入它们,但我大致执行以下操作:
- 获取当前映射:
curl https://en.wikipedia.org/w/api.php?action=cirrus-mapping-dump&format=json > mapping.json
- 将该映射提供给 elasticsearch:
jq .content < mapping.json | curl -XPUT localhost:9200/enwiki_content --data @-
- 加载转储:
zcat enwiki-20151116-cirrussearch-general.json.gz | parallel --pipe -L 2 -N 2000 -j3 'curl -s http://localhost:9200/enwiki_content/_bulk --data-binary @- > /dev/null'
关于xml - 将维基百科转储索引到 elasticsearch 获取 XML 文档结构必须在同一实体错误中开始和结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33630222/