Results missing from search via REST API when fields are missing
The short of it - I'm performing a search on multiple fields (two normal fields and 10 custom_attributes
fields. If a product is missing any one of those custom_attributes
fields it is omitted from the results.
So for example, the user searches for some value 123
:
"search_criteria": {
"filter_groups": [
{
"filters": [
{
"field": "name",
"value": "%123%",
"condition_type": "like"
},
{
"field": "sku",
"value": "%123%",
"condition_type": "like"
},
{
"field": "some_attribute_field",
"value": "%123%",
"condition_type": "like"
}
]
}
],
"page_size": 100,
"current_page": 1
}
Returns 1 item (but should return 2 items):
{
"items": [
{
"sku": "ABC-123",
"name": "SOME PRODUCT",
"custom_attributes": [
{
"attribute_code": "quality",
"value": "generic"
},
...
{
"attribute_code": "some_attribute_field",
"value": "some stuff here that might be relevant"
}
]
}
]
}
If I don't include the some_attribute_field
in the search request (so just the name
and sku
fields (which all products have):
"search_criteria": {
"filter_groups": [
{
"filters": [
{
"field": "name",
"value": "%123%",
"condition_type": "like"
},
{
"field": "sku",
"value": "%123%",
"condition_type": "like"
}
]
}
],
"page_size": 100,
"current_page": 1
}
I get 2 items (as expected):
{
"items": [
{
"sku": "ABC-123",
"name": "SOME PRODUCT",
"custom_attributes": [
{
"attribute_code": "quality",
"value": "generic"
},
...
{
"attribute_code": "some_attribute_field",
"value": "some stuff here that might be relevant"
}
]
},
{
"sku": "ABC-123S",
"name": "SOME PRODUCT S-CLASS",
"custom_attributes": [
{
"attribute_code": "quality",
"value": "super"
},
...
]
}
]
}
The item that is not returned (ABC-123S
) does not have some_attribute_field
in its custom_attributes
and thus is omitted.
Is this intended behaviour?
Unfortunately I can't just perform multiple searches as there are actually 10 custom_attributes
fields that need to be searched over and this is for a mobile app - so it would effectively require 11 search requests and then de-duping results etc, not to mention paginating those all those requests would add unnecessary complexity.
Is there some setting or something that needs to be done on in Magento to get this to work?
Or is there some configuration change that can be done to make this search process simpler?
magento2 rest search
New contributor
add a comment |
The short of it - I'm performing a search on multiple fields (two normal fields and 10 custom_attributes
fields. If a product is missing any one of those custom_attributes
fields it is omitted from the results.
So for example, the user searches for some value 123
:
"search_criteria": {
"filter_groups": [
{
"filters": [
{
"field": "name",
"value": "%123%",
"condition_type": "like"
},
{
"field": "sku",
"value": "%123%",
"condition_type": "like"
},
{
"field": "some_attribute_field",
"value": "%123%",
"condition_type": "like"
}
]
}
],
"page_size": 100,
"current_page": 1
}
Returns 1 item (but should return 2 items):
{
"items": [
{
"sku": "ABC-123",
"name": "SOME PRODUCT",
"custom_attributes": [
{
"attribute_code": "quality",
"value": "generic"
},
...
{
"attribute_code": "some_attribute_field",
"value": "some stuff here that might be relevant"
}
]
}
]
}
If I don't include the some_attribute_field
in the search request (so just the name
and sku
fields (which all products have):
"search_criteria": {
"filter_groups": [
{
"filters": [
{
"field": "name",
"value": "%123%",
"condition_type": "like"
},
{
"field": "sku",
"value": "%123%",
"condition_type": "like"
}
]
}
],
"page_size": 100,
"current_page": 1
}
I get 2 items (as expected):
{
"items": [
{
"sku": "ABC-123",
"name": "SOME PRODUCT",
"custom_attributes": [
{
"attribute_code": "quality",
"value": "generic"
},
...
{
"attribute_code": "some_attribute_field",
"value": "some stuff here that might be relevant"
}
]
},
{
"sku": "ABC-123S",
"name": "SOME PRODUCT S-CLASS",
"custom_attributes": [
{
"attribute_code": "quality",
"value": "super"
},
...
]
}
]
}
The item that is not returned (ABC-123S
) does not have some_attribute_field
in its custom_attributes
and thus is omitted.
Is this intended behaviour?
Unfortunately I can't just perform multiple searches as there are actually 10 custom_attributes
fields that need to be searched over and this is for a mobile app - so it would effectively require 11 search requests and then de-duping results etc, not to mention paginating those all those requests would add unnecessary complexity.
Is there some setting or something that needs to be done on in Magento to get this to work?
Or is there some configuration change that can be done to make this search process simpler?
magento2 rest search
New contributor
add a comment |
The short of it - I'm performing a search on multiple fields (two normal fields and 10 custom_attributes
fields. If a product is missing any one of those custom_attributes
fields it is omitted from the results.
So for example, the user searches for some value 123
:
"search_criteria": {
"filter_groups": [
{
"filters": [
{
"field": "name",
"value": "%123%",
"condition_type": "like"
},
{
"field": "sku",
"value": "%123%",
"condition_type": "like"
},
{
"field": "some_attribute_field",
"value": "%123%",
"condition_type": "like"
}
]
}
],
"page_size": 100,
"current_page": 1
}
Returns 1 item (but should return 2 items):
{
"items": [
{
"sku": "ABC-123",
"name": "SOME PRODUCT",
"custom_attributes": [
{
"attribute_code": "quality",
"value": "generic"
},
...
{
"attribute_code": "some_attribute_field",
"value": "some stuff here that might be relevant"
}
]
}
]
}
If I don't include the some_attribute_field
in the search request (so just the name
and sku
fields (which all products have):
"search_criteria": {
"filter_groups": [
{
"filters": [
{
"field": "name",
"value": "%123%",
"condition_type": "like"
},
{
"field": "sku",
"value": "%123%",
"condition_type": "like"
}
]
}
],
"page_size": 100,
"current_page": 1
}
I get 2 items (as expected):
{
"items": [
{
"sku": "ABC-123",
"name": "SOME PRODUCT",
"custom_attributes": [
{
"attribute_code": "quality",
"value": "generic"
},
...
{
"attribute_code": "some_attribute_field",
"value": "some stuff here that might be relevant"
}
]
},
{
"sku": "ABC-123S",
"name": "SOME PRODUCT S-CLASS",
"custom_attributes": [
{
"attribute_code": "quality",
"value": "super"
},
...
]
}
]
}
The item that is not returned (ABC-123S
) does not have some_attribute_field
in its custom_attributes
and thus is omitted.
Is this intended behaviour?
Unfortunately I can't just perform multiple searches as there are actually 10 custom_attributes
fields that need to be searched over and this is for a mobile app - so it would effectively require 11 search requests and then de-duping results etc, not to mention paginating those all those requests would add unnecessary complexity.
Is there some setting or something that needs to be done on in Magento to get this to work?
Or is there some configuration change that can be done to make this search process simpler?
magento2 rest search
New contributor
The short of it - I'm performing a search on multiple fields (two normal fields and 10 custom_attributes
fields. If a product is missing any one of those custom_attributes
fields it is omitted from the results.
So for example, the user searches for some value 123
:
"search_criteria": {
"filter_groups": [
{
"filters": [
{
"field": "name",
"value": "%123%",
"condition_type": "like"
},
{
"field": "sku",
"value": "%123%",
"condition_type": "like"
},
{
"field": "some_attribute_field",
"value": "%123%",
"condition_type": "like"
}
]
}
],
"page_size": 100,
"current_page": 1
}
Returns 1 item (but should return 2 items):
{
"items": [
{
"sku": "ABC-123",
"name": "SOME PRODUCT",
"custom_attributes": [
{
"attribute_code": "quality",
"value": "generic"
},
...
{
"attribute_code": "some_attribute_field",
"value": "some stuff here that might be relevant"
}
]
}
]
}
If I don't include the some_attribute_field
in the search request (so just the name
and sku
fields (which all products have):
"search_criteria": {
"filter_groups": [
{
"filters": [
{
"field": "name",
"value": "%123%",
"condition_type": "like"
},
{
"field": "sku",
"value": "%123%",
"condition_type": "like"
}
]
}
],
"page_size": 100,
"current_page": 1
}
I get 2 items (as expected):
{
"items": [
{
"sku": "ABC-123",
"name": "SOME PRODUCT",
"custom_attributes": [
{
"attribute_code": "quality",
"value": "generic"
},
...
{
"attribute_code": "some_attribute_field",
"value": "some stuff here that might be relevant"
}
]
},
{
"sku": "ABC-123S",
"name": "SOME PRODUCT S-CLASS",
"custom_attributes": [
{
"attribute_code": "quality",
"value": "super"
},
...
]
}
]
}
The item that is not returned (ABC-123S
) does not have some_attribute_field
in its custom_attributes
and thus is omitted.
Is this intended behaviour?
Unfortunately I can't just perform multiple searches as there are actually 10 custom_attributes
fields that need to be searched over and this is for a mobile app - so it would effectively require 11 search requests and then de-duping results etc, not to mention paginating those all those requests would add unnecessary complexity.
Is there some setting or something that needs to be done on in Magento to get this to work?
Or is there some configuration change that can be done to make this search process simpler?
magento2 rest search
magento2 rest search
New contributor
New contributor
New contributor
asked 2 hours ago
Alex WatersAlex Waters
11
11
New contributor
New contributor
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "479"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Alex Waters is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f261315%2fresults-missing-from-search-via-rest-api-when-fields-are-missing%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Alex Waters is a new contributor. Be nice, and check out our Code of Conduct.
Alex Waters is a new contributor. Be nice, and check out our Code of Conduct.
Alex Waters is a new contributor. Be nice, and check out our Code of Conduct.
Alex Waters is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f261315%2fresults-missing-from-search-via-rest-api-when-fields-are-missing%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown