2016-02-09 68 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