【问题标题】:ElasticSearch Indexing - Selecting java objects for indexing?ElasticSearch Indexing - 选择 java 对象进行索引?
【发布时间】:2016-02-09 08:44:49
【问题描述】:
谁能告诉我,在什么基础上我们应该在 elasticsearch 中选择哪个 java 实体对象应该是“INDEX”类型,哪个对象应该是“TYPE”类型??
让我们有对象 1、2、3
对象 1 具有对象 2 的列表。对象 3 是另一个单独的对象。
在这种情况下,哪个应该是“INDEX”,哪个应该是“TYPE”
【问题讨论】:
标签:
elasticsearch
spring-data
spring-data-elasticsearch
【解决方案1】:
这实际上取决于您。您可以为所有域创建单独的索引,也可以使用您的应用程序名称或其他名称创建index。然后您可以在其中定义类型,其中将包含您的应用程序的域。
根据您的情况,您可以将 Object1 和 Object3 定义为类型。
由于 Object2 包含在 Object1 中,因此您必须将其定义为 object 字段或 nested 类型内的字段 Object1 。
所以你的架构会是这样的
Name Of Index : indexName
indexName 类型:object1 和 object3
object1 的 nested 或 object 字段类型为 object2。
步骤将是..
PUT /indexName
PUT indexName/object1/_mapping
{
"properties": {
"object2": {
"type": "nested" //this can be "object" as well
}
}
}
PUT indexName/object3/_mapping
{
"properties": {
...
}
}
希望对你有帮助