2015-12-03 5 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

На самом деле я сначала рассмотрел исходный код индексатора - и, как вы сказали, ссылки на шаблон отсутствуют. Я думаю, что мне не хватало список полей, которые были проиндексированы/сохранены Nutch, о которых вы упомянули (в их вики). Таким образом, также в зависимости от того, что вы включили в списке плагинов в файле nutch-site.xml, писатель индекса nutch будет генерировать сопоставления elasticsearch на основе такого списка полей. Проверяя сгенерированные сопоставления, вы также можете заключить, какие плагины будут успешно включены (или нет). Полученные в результате отображения могут, в свою очередь, быть найдены в elasticsearch, как и я; правильно? – wbartussek

+0

Да, это правильно! – Val

+0

Неужели вам удавалось пробовать это до сих пор? – Val

Смежные вопросы