k.explorer
k.explorer

Reputation: 321

sorting/scoring parent documents based on child field values

Types Description:  parent type
  1)Parent Type: "product"
  2)childType : "ratings"

Description of problem :i have an es query(query-1) which is working fine and fetching me results from parent Type(product), now i added a new type(ratings), and made the new type child of "product", and I need to extend this existing query where the new results should get sorted based on the filed values of matched child(ratings) type.

query -1:

{
  "bool" : {
    "must" : [ {
      "has_parent" : {
        "query" : {
          "bool" : {
            "must" : {
              "term" : {
                "searchable" : "true"
              }
            }
          }
        },
        "parent_type" : "supplierparent",
        "inner_hits" : { }
      }
    }, {
      "bool" : {
        "must" : {
          "query" : {
            "simple_query_string" : {
              "query" : "rice"
            }
          }
        }
      }
    }, {
      "nested" : {
        "query" : {
          "term" : {
            "productStatusList.status" : "Approved"
          }
        },
        "path" : "productStatusList"
      }
    } ]
  }
}

Upvotes: 2

Views: 724

Answers (1)

enator
enator

Reputation: 2599

I think there should be better ways to do this like we do with nested documents' attribute's sort. But one way with parent-child relation to sort can occur is on current type's attribute.

since they are now completely different document store, it would not be possible to use child property for sorting parent. There can be multiple children for the same parent doc, which would create ambiguity in sorting results.

Upvotes: 2

Related Questions