Я использую logstash индексировать некоторые данные MySQL на elasticsearch:Как определить конкретные поля лексемизацию на Logstash
input {
jdbc {
// JDBC configurations
}
}
output {
elasticsearch {
index => ""
document_type => ""
document_id => ""
hosts => [ "" ]
}
}
При проверке результатов я обнаружил, что elasticsearch автоматически размечает текст, как это:
"Foo/Bar" -> "Foo", "Bar"
"The thing" -> "The", "thing"
"Fork, Knife" -> "Fork", "Knife"
Ну, это нормально для большинства моих полей. Но есть одно конкретное поле, в котором я хотел бы иметь пользовательский токенизатор. Это поле, разделенное запятой (или разделенная запятая). Таким образом, это должно быть:
"Foo/Bar" -> "Foo/Bar"
"The thing" -> "The thing"
"Fork, Knife" -> "Fork", "Knife"
Я блуждаю, если есть способ настроить это в моей конфигурации logstash.
UPDATE:
Это один пример индекса, который у меня есть. Конкретное поле kind
:
{
"index-name": {
"aliases": {},
"mappings": {
"My-type": {
"properties": {
"@timestamp": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
},
"@version": {
"type": "string"
},
"kind": {
"type": "string"
},
"id": {
"type": "long"
},
"text": {
"type": "string"
},
"version": {
"type": "string"
}
}
}
},
"settings": {
"index": {
"creation_date": "",
"number_of_shards": "",
"number_of_replicas": "",
"uuid": "",
"version": {
"created": ""
}
}
},
"warmers": {}
}
}
Да, это возможно. Можете ли вы поделиться своим текущим сопоставлением и именем поля, которое хотите по-разному обозначить? – Val
Эй, @ Вал, я только что добавил к вопросу. Благодарю. – Montenegrodr