ਜਦੋਂ ਕਈ ਸ਼ਰਤਾਂ ਐਰੇ ਦੇ ਇੱਕੋ ਤੱਤ ਉੱਤੇ ਲਾਗੂ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ ਤਾਂ nested ਚੁਣੋ। ਨਹੀਂ ਤਾਂ ਵੱਖਰੇ ਤੱਤਾਂ ਦੀਆਂ ਕੀਮਤਾਂ ਗਲਤੀ ਨਾਲ ਮਿਲ ਕੇ ਕਵੇਰੀ ਪੂਰੀ ਕਰ ਸਕਦੀਆਂ ਹਨ।
ਦੋ ਵੇਰੀਐਂਟ ਵਾਲਾ ਉਤਪਾਦ
ਲਾਲ ਰੰਗ ਦਾ L ਆਕਾਰ ਵੇਰੀਐਂਟ ਨਹੀਂ ਹੈ। ਪਰ ਆਮ object ਮੈਪਿੰਗ ਇਹ ਫੀਲਡ ਕਈ ਰੰਗਾਂ ਅਤੇ ਕਈ ਆਕਾਰਾਂ ਵਿੱਚ ਸਮਤਲ ਕਰਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਕਿਹੜਾ ਆਕਾਰ ਕਿਹੜੇ ਰੰਗ ਦਾ ਹੈ ਇਹ ਸੰਬੰਧ ਗੁੰਮ ਜਾਂਦਾ ਹੈ। ਇਸ ਲਈ ਲਾਲ ਅਤੇ L ਦੀ ਕਵੇਰੀ ਗਲਤ ਤਰੀਕੇ ਨਾਲ ਉਤਪਾਦ ਨਾਲ ਮਿਲ ਸਕਦੀ ਹੈ।
variants ਨੂੰ nested ਅਤੇ color/size ਨੂੰ keyword ਮੈਪ ਕਰੋ। ਫਿਰ ਵਰਤੋ:
{
"query": {
"nested": {
"path": "variants",
"query": {
"bool": {
"filter": [
{"term":{"variants.color":"red"}},
{"term":{"variants.size":"L"}}
]
}
}
}
}
}
ਹੁਣ ਦੋਵੇਂ ਫਿਲਟਰ ਇੱਕ nested ਤੱਤ ਅੰਦਰ ਚੱਲਦੇ ਹਨ, ਇਸ ਲਈ ਉਦਾਹਰਨ ਉਤਪਾਦ ਨਹੀਂ ਮਿਲਦਾ। L ਨੂੰ S ਨਾਲ ਬਦਲੋ ਤਾਂ ਇਹ ਲਾਲ ਵੇਰੀਐਂਟ ਨਾਲ ਮਿਲ ਸਕਦਾ ਹੈ।
Nested ਤੱਤ ਵਾਧੂ ਅੰਦਰੂਨੀ ਦਸਤਾਵੇਜ਼ ਅਤੇ ਮਹਿੰਗੀਆਂ ਕਵੇਰੀਆਂ ਬਣਾਉਂਦੇ ਹਨ। ਜਦੋਂ ਐਰੇ ਅੰਦਰ ਸੰਬੰਧ ਬਚਾਉਣੇ ਲੋੜੀਂਦੇ ਨਾ ਹੋਣ ਤਾਂ ਆਮ object ਸੌਖਾ ਹੈ। ਮੈਪਿੰਗ ਕੰਮ ਕਰਦੀ ਮੰਨਣ ਤੋਂ ਪਹਿਲਾਂ ਸਹੀ ਅਤੇ ਵੱਖਰੇ ਤੱਤ ਜੋੜਨ ਵਾਲੇ ਦੋਵੇਂ ਸੰਯੋਗ ਜਾਂਚੋ।
ਵਿਸਤ੍ਰਿਤ ਜਵਾਬਾਂ ਨਾਲ IT ਇੰਟਰਵਿਊ ਸਵਾਲਾਂ ਦੀ ਇੱਕ ਲਾਇਬ੍ਰੇਰੀ — ਜੂਨੀਅਰ ਤੋਂ ਸੀਨੀਅਰ ਤੱਕ।
ਦਾਨ ਕਰੋ