Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 弹性搜索中的嵌套文档_Java_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Document - Fatal编程技术网 elasticsearch,document,Java,elasticsearch,Document" /> elasticsearch,document,Java,elasticsearch,Document" />

Java 弹性搜索中的嵌套文档

Java 弹性搜索中的嵌套文档,java,elasticsearch,document,Java,elasticsearch,Document,我们有一个使用ElasticSearch的程序。我们需要使用联接进行查询,这在elasticsearch中是不受支持的,因此只剩下嵌套关系或父子关系。我已经读到使用父子关系可能会导致错误,所以我们考虑使用嵌套文档 我们对产品进行索引/查询,但我们也有客户和供应商。因此,这是我对产品映射的思考: { "mappings" : { "products" : { "dynamic": false, "properties" : {

我们有一个使用ElasticSearch的程序。我们需要使用联接进行查询,这在elasticsearch中是不受支持的,因此只剩下嵌套关系或父子关系。我已经读到使用父子关系可能会导致错误,所以我们考虑使用嵌套文档

我们对产品进行索引/查询,但我们也有客户和供应商。因此,这是我对产品映射的思考:

{
    "mappings" : {
      "products" : {
        "dynamic": false,
        "properties" : {
          "availability" : {
            "type" : "text"
          },
          "customer": {
              "type": "nested"
          },
          "vendor": {
              "type": "nested"
          },
          "color" : {
                "type" : "text"
            }
          },
          "created_date" : {
            "type" : "text"
          }
        }
      }
    }
}
这里客户和供应商是我的映射字段


这个映射看起来正确吗?由于我将dynamic设置为false,是否需要指定客户和供应商子文档的内容?如果是这样的话,我该怎么做呢?

我的团队发现父/子关系对我们的绩效非常有害,所以我认为您可能做出了一个使用嵌套字段的好决定

如果使用dynamic:false,则未定义的字段将不会添加到映射中。您可以将其设置为true,并在索引时添加这些字段,也可以自己定义嵌套文档的属性:

{
"mappings" : {
  "products" : {
    "dynamic": false,
    "properties" : {
      ...
      "customer": {
          "type": "nested",
          "properties": {
              "prop a": {...},
              "prop b": {...}
          }
      },
      "vendor": {
          "type": "nested",
          "properties": {
              "prop a": {...},
              "prop b": {...}
          }
      },
      ...
    }
  }
}
}