1

开箱即用的弹性搜索的 nutch 索引编写器在弹性搜索中生成一个索引,其名称在属性元素中的 nutch-site.xml(或 nutch-default.xml)中提供:

   <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. 我在哪里可以找到这方面的更多信息?

任何帮助表示赞赏!谢谢,沃尔夫拉姆

4

1 回答 1

2

欢迎来到 StackOverflow !!

以下是我对您的问题的看法:

  1. 看起来 Nutch 没有创建任何模板。这是源代码,ElasticIndexWriter您可以看到在任何地方都没有引用任何模板。

  2. 由于 Nutch 不创建任何索引模板,因此您无法更改它......但如果您想要/需要控制某些字段的映射,您绝对可以直接在 ES 集群中自己创建一个。

您可以从 Nutch 创建的默认映射(即您在问题中粘贴的映射)开始并对其进行迭代。从中创建模板很简单,即您只需添加"template": "nutch*"属性(下面的第一行)就可以了(有关如何更改映射的更多信息,请点击此处):

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在其 wiki 中索引/存储的所有字段都有描述,因此您可以修改上面的映射,以便以不同的方式存储/索引某些字段以满足您的确切需求。

注意:确保先擦除当前nutch索引,然后创建模板(上面的第 2 点),然后当 Nutch 为其第一个文档编制索引时,将自动创建索引。

您可能也有兴趣研究FLUME-2787问题,因为其他人似乎已经自己完成了模板创建。你可能会在那里找到一些金块。

于 2015-12-03T13:12:42.717 回答