Elasticsearch에서 하위 배열을 필터링 할 수 있습니까?

산드라

Elastic Search에서 각 주문에 대한 주문 및 주문 제품이 하위 배열로 첨부되어 있습니다. 가격을 집계 할 때 주문 문서에서 주문 제품을 필터링 할 수 있어야합니다.

Elastic에있는 내 문서의 예 :

{  
   "OrderID":4567488,
   "projectId":"4",
   "Project":"direkt",
   "legacy_id":null,
   "supporterId":null,
   "Origin":"FR",
   "orderProducts":[  
      {  
         "OrderProductID":"15694898",
         "OrderID":"4567488",
         "brandNo":"30",
         "Price":"26.95",
      },
      {  
         "OrderProductID":"15694898",
         "OrderID":"4567488",
         "brandNo":"15",
         "Price":"15.22",
      },
       {  
         "OrderProductID":"15694898",
         "OrderID":"4567488",
         "brandNo":"123",
         "Price":"24.55",
      },
   ]
}

지금 내가 필터링하는 방법 :

 {  
      "index":"order_index",
      "from":0,
      "size":100,
      "body":{  
         "query":{  
            "filtered":{  
               "filter":{  
                  "bool":{  
                     "must":[  
                        {  
                           "term":{  
                              "orderProducts.brandNo":"30"
                           }
                        }
                     ],
                  }
               }
            }
         }
      }
   }

내가 기대하는 것

{  
   "OrderID":4567488,
   "projectId":"4",
   "Project":"direkt",
   "legacy_id":null,
   "supporterId":null,
   "Origin":"FR",
   "orderProducts":[  
      {  
         "OrderProductID":"15694898",
         "OrderID":"4567488",
         "brandNo":"30",
         "Price":"26.95",
      },
   ]
}

내가 실제로 얻는 것 :

모든 문서.

가능합니까? 하위 배열 데이터를 필터링하려면?

UPD.

예, 이것은 내 스키마 매핑입니다.

"mappings":{  
   "order":{  
      "dynamic_templates":[  
         {  
            "strings":{  
               "mapping":{  
                  "type":"string",
                  "fields":{  
                     "raw":{  
                        "index":"not_analyzed",
                        "type":"string"
                     }
                  }
               },
               "match_mapping_type":"string"
            }
         }
      ],
      "properties":{  
         "orderProducts":{  
            "include_in_parent":true,
            "properties":{  
               "OrderProductID":{  
                  "type":"long"
               },
               "OrderID":{  
                  "type":"long"
               },
               "brandNo":{  
                  "type":"long"
               },
               "Price":{  
                  "type":"double"
               }

            },
            "type":"nested"
         },
         "OrderID":{  
            "type":"long"
         }
      }
   }
},
산드라

좋아, 몇 번의 실험 후에 나는 그 집계가 다음과 같이 수행 될 수 있음을 발견했습니다.

 {  
   "aggs":{  
      "sales":{  
         "nested":{  
            "path":"orderProducts"
         },
         "aggs":{  
            "filtered_nestedobjects":{  
               "filter":{  
                  "bool":{  
                     "must":[  
                        {  
                           "terms":{  
                              "orderProducts.brandNo":[  
                                 "30"
                              ]
                           }
                        }
                     ]
                  }
               },
               "aggs":{  
                  "Quantity":{  
                     "sum":{  
                        "field":"orderProducts.Quantity"
                     }
                  }
               }
            }
         }
      }
   }
}

그리고 주요 질문에 대한 대답은 우리가 탄성의 부분 배열을 필터링 할 수 있습니다 . 으로 inner_hits 단지 내가 이런 짓을.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

하위 문자열을 사용하여 자바 스크립트에서 객체 배열을 필터링 할 수 있습니까?

분류에서Dev

UISearchController에서 배열을 어떻게 필터링 할 수 있습니까?

분류에서Dev

nhibernate 하위 컬렉션을 필터링 할 수 있습니까?

분류에서Dev

Solr에서 쌍 목록을 필터링 할 수 있습니까?

분류에서Dev

어떻게 스트림을 사용하여 이중 배열에서 비 INT 값을 필터링 할 수 있습니까?

분류에서Dev

ggplot 내에서 시계열 필터링을 사용할 수 있습니까?

분류에서Dev

같은 속성에있는 객체의 배열을 어떻게 필터링 할 수 있습니까?

분류에서Dev

ebean 및 psql (쿼리 기호 포함)을 사용하여 jsonb 배열을 필터링 할 수 있습니까?

분류에서Dev

ElasticSearch-문자열 배열을 필터링 할 수 없습니다.

분류에서Dev

문자열의 특정 키에 해당하는 값을 어떻게 필터링 할 수 있습니까?

분류에서Dev

Tkinter를 사용하여 Python에서 필터링 된 DataFrame을 GUI에 어떻게 표시 할 수 있습니까?

분류에서Dev

div에서 숫자 범위를 필터링 할 수 있습니까?

분류에서Dev

ElasticSearch에서 미리 정의 된 범위 필터 패싯을 생성 할 수 있습니까?

분류에서Dev

드롭 다운 필드에서 선택한 항목을 기반으로 하위 표를 필터링 할 수 있습니까?

분류에서Dev

React.js에서 내 배열을 통해 필터링 할 수 없습니다.

분류에서Dev

Excel에서 사용 된 수식을 필터링 할 수 있습니까?

분류에서Dev

Typescript 제네릭을 사용하여 객체에서 키를 필터링 할 수 있습니까?

분류에서Dev

배열의 하위 부분을 함수에 전달할 수 있습니까? C ++

분류에서Dev

Crossfilter를 사용하여 그룹 내에서 필터링 할 수 있습니까?

분류에서Dev

React에서 상태 배열로 데이터 객체를 어떻게 필터링 할 수 있습니까?

분류에서Dev

배열 항목을 어떻게 필터링 할 수 있습니까?

분류에서Dev

MS Speech-to-Text에서 "interjections"/ "humming"을 필터링 할 수 있습니까?

분류에서Dev

htaccess 파일에서 URL을 어떻게 필터링 할 수 있습니까?

분류에서Dev

Python에서 목록을 어떻게 필터링 할 수 있습니까?

분류에서Dev

Laravel Eloquent에서 ManyToMany 자식을 어떻게 "필터링"할 수 있습니까?

분류에서Dev

Enterprise Architect에서 흐름을 어떻게 필터링 할 수 있습니까?

분류에서Dev

일부 속성은 Elasticsearch 7.4에서 필터링 할 수 없습니다. 필터링하는 방법?

분류에서Dev

ng-repeat에서 필터를 사용하여 특정 필드에 대해 여러 항목을 필터링 할 수 있습니까?

분류에서Dev

Ext.js 4.2.0의 그리드에서 렌더링 된 열을 어떻게 필터링 할 수 있습니까?

Related 관련 기사

  1. 1

    하위 문자열을 사용하여 자바 스크립트에서 객체 배열을 필터링 할 수 있습니까?

  2. 2

    UISearchController에서 배열을 어떻게 필터링 할 수 있습니까?

  3. 3

    nhibernate 하위 컬렉션을 필터링 할 수 있습니까?

  4. 4

    Solr에서 쌍 목록을 필터링 할 수 있습니까?

  5. 5

    어떻게 스트림을 사용하여 이중 배열에서 비 INT 값을 필터링 할 수 있습니까?

  6. 6

    ggplot 내에서 시계열 필터링을 사용할 수 있습니까?

  7. 7

    같은 속성에있는 객체의 배열을 어떻게 필터링 할 수 있습니까?

  8. 8

    ebean 및 psql (쿼리 기호 포함)을 사용하여 jsonb 배열을 필터링 할 수 있습니까?

  9. 9

    ElasticSearch-문자열 배열을 필터링 할 수 없습니다.

  10. 10

    문자열의 특정 키에 해당하는 값을 어떻게 필터링 할 수 있습니까?

  11. 11

    Tkinter를 사용하여 Python에서 필터링 된 DataFrame을 GUI에 어떻게 표시 할 수 있습니까?

  12. 12

    div에서 숫자 범위를 필터링 할 수 있습니까?

  13. 13

    ElasticSearch에서 미리 정의 된 범위 필터 패싯을 생성 할 수 있습니까?

  14. 14

    드롭 다운 필드에서 선택한 항목을 기반으로 하위 표를 필터링 할 수 있습니까?

  15. 15

    React.js에서 내 배열을 통해 필터링 할 수 없습니다.

  16. 16

    Excel에서 사용 된 수식을 필터링 할 수 있습니까?

  17. 17

    Typescript 제네릭을 사용하여 객체에서 키를 필터링 할 수 있습니까?

  18. 18

    배열의 하위 부분을 함수에 전달할 수 있습니까? C ++

  19. 19

    Crossfilter를 사용하여 그룹 내에서 필터링 할 수 있습니까?

  20. 20

    React에서 상태 배열로 데이터 객체를 어떻게 필터링 할 수 있습니까?

  21. 21

    배열 항목을 어떻게 필터링 할 수 있습니까?

  22. 22

    MS Speech-to-Text에서 "interjections"/ "humming"을 필터링 할 수 있습니까?

  23. 23

    htaccess 파일에서 URL을 어떻게 필터링 할 수 있습니까?

  24. 24

    Python에서 목록을 어떻게 필터링 할 수 있습니까?

  25. 25

    Laravel Eloquent에서 ManyToMany 자식을 어떻게 "필터링"할 수 있습니까?

  26. 26

    Enterprise Architect에서 흐름을 어떻게 필터링 할 수 있습니까?

  27. 27

    일부 속성은 Elasticsearch 7.4에서 필터링 할 수 없습니다. 필터링하는 방법?

  28. 28

    ng-repeat에서 필터를 사용하여 특정 필드에 대해 여러 항목을 필터링 할 수 있습니까?

  29. 29

    Ext.js 4.2.0의 그리드에서 렌더링 된 열을 어떻게 필터링 할 수 있습니까?

뜨겁다태그

보관