2015-12-03 39 views
1

開箱所述的nutch索引作家elasticsearch的生成elasticsearch與的nutch-site.xml中提供的名稱在屬性元素的索引(或Nutch的-default.xml中):如何修改nutch索引編寫器用於elasticsearch的索引模板?

<property> 
    <name>elastic.index</name> 
    <value>nutch</value> 
    <description>Default index to send documents to.</description> 
    </property> 

的映射部在elasticsearch這樣一個自動生成的索引始終具有以下結構

{ 
     "nutch": { 
      "mappings": { 
       "doc": { 
        "properties": { 
         "anchor": { 
          "type": "string" 
         }, 
         "boost": { 
          "type": "string" 
         }, 
         "cache": { 
          "type": "string" 
         }, 
         "content": { 
          "type": "string" 
         }, 
         "contentLength": { 
          "type": "string" 
         }, 
         "date": { 
          "type": "date", 
          "format": "dateOptionalTime" 
         }, 
         "digest": { 
          "type": "string" 
         }, 
         "host": { 
          "type": "string" 
         }, 
         "id": { 
          "type": "string" 
         }, 
         "lang": { 
          "type": "string" 
         }, 
         "lastModified": { 
          "type": "date", 
          "format": "dateOptionalTime" 
         }, 
         "segment": { 
          "type": "string" 
         }, 
         "title": { 
          "type": "string" 
         }, 
         "tstamp": { 
          "type": "date", 
          "format": "dateOptionalTime" 
         }, 
         "type": { 
          "type": "string" 
         }, 
         "url": { 
          "type": "string" 
         } 
        } 
       } 
      } 
     } 
    } 
  1. 哪裏模板嗎?
  2. 可以更改嗎?
  3. 如果是,哪些字段是強制性的,哪些是可選的?
  4. 我在哪裏可以找到關於此的更多信息?

任何幫助表示讚賞! 謝謝,Wolfram

回答

2

歡迎來到StackOverflow!

這裏是我看看你的問題:

  1. 它看起來並不像Nutch的創建的任何模板。這裏是ElasticIndexWriter的源代碼,正如你所看到的,沒有任何地方的任何模板的引用。

  2. 由於Nutch沒有創建任何索引模板,所以您不能更改它......但是如果您想要/需要控制某些字段的映射,您可以直接在ES集羣中直接創建一個。

您可以從Nutch創建的默認映射(即您粘貼到您的問題中的映射)開始,並對其進行迭代。創建模板出它是平凡的,即你只需要添加的"template": "nutch*"財產(以下第一線)和你去好(可如何改變映射available here一些更多的信息):

curl -XPUT localhost:9200/_template/nutch_template -d '{ 
    "template": "nutch*", 
    "mappings": { 
    "doc": { 
     "properties": { 
     "anchor": { 
      "type": "string" 
     }, 
     "boost": { 
      "type": "string" 
     }, 
     "cache": { 
      "type": "string" 
     }, 
     "content": { 
      "type": "string" 
     }, 
     "contentLength": { 
      "type": "string" 
     }, 
     "date": { 
      "type": "date", 
      "format": "dateOptionalTime" 
     }, 
     "digest": { 
      "type": "string" 
     }, 
     "host": { 
      "type": "string" 
     }, 
     "id": { 
      "type": "string" 
     }, 
     "lang": { 
      "type": "string" 
     }, 
     "lastModified": { 
      "type": "date", 
      "format": "dateOptionalTime" 
     }, 
     "segment": { 
      "type": "string" 
     }, 
     "title": { 
      "type": "string" 
     }, 
     "tstamp": { 
      "type": "date", 
      "format": "dateOptionalTime" 
     }, 
     "type": { 
      "type": "string" 
     }, 
     "url": { 
      "type": "string" 
     } 
     } 
    } 
    } 
}' 

3- 4。有一個由Nutch in their wiki索引/存儲的所有字段的描述,所以你可以修改上面的映射,以便以不同的方式存儲/索引某些字段以符合您的確切需求。

注意:確保首先擦去當前的nutch索引,然後創建模板(上面的第2點),然後當Nutch索引它的第一個文檔時,索引將自動創建。

您可能也有興趣研究FLUME-2787這個問題,因爲其他人似乎自己也經歷了模板創建。你可能會在那裏找到一些金塊。

+0

事實上,我首先經歷了索引編寫器的源代碼 - 正如你所說的,沒有引用模板。我想我錯過了你提到的(在他們的wiki中)由Nutch索引/存儲的字段列表。因此,也取決於您在nutch-site.xml中的插件列表中啓用的內容,nutch索引編寫器將基於這樣的字段列表生成elasticsearch映射。通過檢查生成的映射,人們還可以得出哪些插件成功啓用(或不啓用)。然後可以像我一樣在彈性搜索中找到所得映射。對? – wbartussek

+0

是的,沒錯! – Val

+0

到目前爲止,你有沒有嘗試過這樣的運氣? – Val