Как изменить шаблон индекса, используемый автором индекса ореха для эластичного поиска?
Из коробки средство записи индекса ореха для asticsearch генерирует индекс в asticsearch с именем, указанным в nutch-site.xml (или nutch-default.xml) в элементе свойства:
<property>
<name>elastic.index</name>
<value>nutch</value>
<description>Default index to send documents to.</description>
</property>
Раздел сопоставлений в asticsearch для такого автоматически генерируемого индекса всегда имеет следующую структуру
{
"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 ответ
Добро пожаловать в Stackru!
Вот мой ответ на ваши вопросы:
Не похоже, что Nutch создает какой-либо шаблон. Вот исходный код
ElasticIndexWriter
и, как вы можете видеть, нигде нет ссылки на какой-либо шаблон.Поскольку 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, поэтому вы можете изменить приведенное выше отображение, чтобы по-разному хранить / индексировать определенные поля в соответствии с вашими потребностями.
Примечание: обязательно стереть ваш текущий nutch
Сначала выполните индексирование, затем создайте шаблон (пункт 2 выше), а затем, когда Nutch будет индексировать свой первый документ, индекс будет создан автоматически.
Вы также можете быть заинтересованы в изучении проблемы FLUME-2787, так как, кажется, кто-то еще сам прошел процесс создания шаблона. Вы можете найти там самородки.