Я не могу получить родительские/дочерние документы из ES на основе моей реализации ниже.
ШАГ 1: Отношения
{
"versionjoin": {
"properties": {
"my_join_field": {
"type": "join",
"relations": {
"version": "accountversion"
}
}
}
}
}
ШАГ 2: Вот как я индексирую родительский документ.
{
String pattern = YYYY_MM_DD_HH_MM_SS;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String date = simpleDateFormat.format(index_timestamp);
JSONObject obj = new JSONObject();
JSONObject joinObject = new JSONObject();
obj.put(VERSIONNUMBER, versionNumber);
obj.put(VERSIONDATE, date);
obj.put("my_join_field","version");
client.prepareIndex(
versionIndexName,
versionJoinType)
.setId(versionNumber)
.setSource(obj.toString(),XContentType.JSON)
.execute()
.actionGet();
}
ШАГ 3: Вот как я пытаюсь проиндексировать дочерний документ.
JsonNode node = serializeMapper.readTree(json);
ObjectNode addedNode = ((ObjectNode) node).putObject("my_join_field");
addedNode
.put("name", "accountversion")
.put("parent", association.getVersion());
String modifiedJson = serializeMapper.writeValueAsString(addedNode);
indexResponse = client.prepareIndex(versionIndexName, versionJoinType)
.setId(String.valueOf(association.getId() + ":" +
association.getVersion()))
.setRouting(association.getVersion())
.setSource(modifiedJson,XContentType.JSON).get();
Когда я пытаюсь получить документы, используя идентификатор документа и маршрутизацию, я не вижу никаких документов в результате. Недавно я перенес ES с версии 2.4 на версию 6.2 и изменил приведенную выше реализацию, чтобы читать родительские и дочерние документы из одного и того же индекса. Поскольку поддержка типов устарела в ES 6.2. Может ли кто-нибудь предложить, если я делаю что-то не так.