2016-04-18 2 views
1

Я пытаюсь индексировать базу данных mysql с помощью elasticsearch. Рассмотрим пример отображения:Как проиндексировать вложенный объект mysql в elasticsearch с помощью logstash?

{"blog": 
    {"properties": 
    {"id": "string"} 
    {"author": "string"} 
    {"time_created": } 
    {"author_info": 
     {"author_name":} 
     {"author_sex":} 
    } 
    {"posts": 
     {"post_author":} 
     {"post_time":} 
    } 
    } 
} 

У меня есть три таблицы, которые являются author_info, блогами и сообщениями. Как я могу индексировать эти записи в эластичные с вложенной структурой? Я не могу найти документы об этом. Спасибо

+0

Yangrui, Вы решить эту проблему? Im имеет такую ​​же проблему, и я не могу получить вложенные данные mysql в elasticsearch с очень похожей структурой для вас. Благодарю. – Birdy

ответ

0

В sql-части входа в logstash вы можете попытаться выбрать поля с вложенными именами, которые вы хотите найти в elasticsearch. Ниже приведен небольшой пример того, как он может выглядеть.

вход { {

JDBC
statement => "SELECT id as blog.properties.id, author as blog.properties.author,..... from blog inner join properties inner join posts" 

}}

+0

Я не очень хорошо знаком с поиском elastics. Не могли бы вы указать, как я могу форматировать sql-запрос, чтобы сделать его структурированным? – Yangrui

+0

Отредактированный ответ с примером использования входа logstash jdbc - должен быть ближе к тому месту, где вы находитесь, чем использовать elasticsearch-jdbc в исходном ответе. – bbergvt

+0

@bbergvt Это не сработает, он показывает ошибку синтаксиса MySQL при попытке вложить вот так: выберите автора как blog.properties.author - Есть ли какие-либо другие предложения? – Birdy

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