2016-09-26 24 views
2

面對使用nutch和elasticsearch進行爬網時的一些嚴重問題。nutch crawled文檔elasticsearch映射中面臨的問題

我們的應用程序中有兩個數據存儲引擎。

  1. MySql的

  2. Elasticsearch

可以說我有存儲在MySQL數據庫中的URL表10頁的URL。現在我想在運行時從表中獲取這些url並將它們寫入seed,txt用於抓取。我已經將所有這些網址寫入需要,txt一次。現在我的抓取開始了,然後我將這些文檔索引在一個索引中的elasticsearch中(可以說url索引)。但是我想在elasticsearch索引中維護一個引用,以便我可以獲取特定url的已抓取詳細信息,以便進行分析,因爲elasticsearch索引只包含已抓取的數據。例如。

在mysql中我的表結構是:

表網址:

ID網址


1 www.google.com

Elasticsearch索引映射我想要的是:

索引網址:

{ _id: 「www.google.com」, 類型: 「文檔」, 內容: 「世界,你好」 url_id:1, 。 。 。 }

這裏url_id是url列表中被抓取的url的id列的字段值。

我可以爲每個url創建單獨的索引,但該解決方案並不理想,因爲在一天結束時,我將擁有多個索引。那麼抓取後如何實現這一點。我是否必須修改彈性搜索索引器?我使用nutch 1.12和elastichsearch 1.7.1。任何幫助將不勝感激。

回答

3

您應該通過url_id在你的種子列表的額外的元數據,並使用urlmeta和索引的元數據的插件,使鍵/值被傳遞到出站鏈接(如有必要),或至少可用於索引。

請參閱Nutch WIKI瞭解如何索引元標記。

+0

謝謝一個男人。我將url_id與url一起傳遞並使用了urlmeta插件。最後,這個URL在索引後在elasticsearch中創建url_id字段。現在我可以將我的url表映射到mysql表中到elasticsearch索引。這節省了我很多時間。 – user2354150

+0

@ user2354150你還沒有在接受上面標記我的答案。可能最好打開一個新的問題,將使其他人更容易找到它 –

+0

答案接受並提供最佳結果 – user2354150