2016-02-09 32 views
0

有人可以让我知道在什么基础上我们应该选择哪个Java实体对象应该在elasticsearch中键入“INDEX”,哪个对象应该是“TYPE”类型的?ElasticSearch索引 - 选择Java对象进行索引?

让我们加工对象物1,2,3

对象1具有对象2.对象的列表3是另一个单独的对象。

在这种情况下,这应该是“INDEX”,哪些应该是“TYPE”

回答

0

这实际上取决于你。您可以为所有域创建单独的索引,也可以使用应用程序的名称或其他名称创建index。然后,可以在其中定义包含应用程序域的类型。

根据您的情况,您可以将Object1Object3定义为类型。 由于Object2包含在Object1中,因此您必须将其定义为object字段或nested字段,其​​内部类型为Object1

所以,你的建筑会像

Name Of IndexindexName

indexName类型:object1object3

object1将有nestedobject字段类型的object2

步骤将..

  • PUT /indexName
  • PUT indexName/object1/_mapping { "properties": { "object2": { "type": "nested" //this can be "object" as well } } }
  • PUT indexName/object3/_mapping { "properties": { ... } }

希望这有助于

+0

哪家好?作为嵌套对象或只有另一个内部元素 – user2526641

+0

这取决于您的要求。在https://www.elastic.co/blog/managing-relations-inside-elasticsearch上查看两者之间的区别以查看使用哪一个。 – Richa