magento2 search_tmp join leads to empty results in category listing












5















I just imported products into fresh magento2 instance and encountered issue that category product listing block are empty, although the products successfully appear in database . I have debugged list.phtml block and dumped the collection query which is:



SELECT `e`.*,
`cat_index`.`position` AS `cat_index_position`,
`price_index`.`price`,
`price_index`.`tax_class_id`,
`price_index`.`final_price`,
IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`,
`price_index`.`min_price`,
`price_index`.`max_price`,
`price_index`.`tier_price`
FROM `catalog_product_entity` AS `e`
INNER JOIN `catalog_category_product_index` AS `cat_index` ON cat_index.product_id=e.entity_id
AND cat_index.store_id=1
AND cat_index.visibility IN(2,
4)
AND cat_index.category_id='31'
INNER JOIN `cataloginventory_stock_status` AS `stock_status_index` ON e.entity_id = stock_status_index.product_id
AND stock_status_index.website_id = '1'
AND stock_status_index.stock_id = 1
INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id
AND price_index.website_id = '1'
AND price_index.customer_group_id = 0
INNER JOIN `search_tmp_58171902857f18_28938044` AS `search_result` ON e.entity_id = search_result.entity_id
WHERE (stock_status_index.stock_status=1)
ORDER BY `cat_index`.`position` ASC LIMIT 9


I tried to run this raw query in in console mysql and noticed that it fails on this part:



INNER JOIN `search_tmp_58171902857f18_28938044` AS `search_result` ON e.entity_id = search_result.entity_id


which is probably virtual table



without this JOIN query returns collections as expected



any suggestions for directions of debugging would be much appreciated



PS
cache is turned off, and I have rebuilt indexes via bin/magento indexer:reindex,
the theme is porto










share|improve this question























  • I could not solve it in my store, I also use the porto theme and I have problems when I type something in the search bar, the result is null. Exception #1 (PDOException): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'search_result.score' in 'order clause' my version of magento is 2.2.2 and already it is in agreement with the alteration of the Magento Master

    – Gabriel Fragoso
    6 hours ago
















5















I just imported products into fresh magento2 instance and encountered issue that category product listing block are empty, although the products successfully appear in database . I have debugged list.phtml block and dumped the collection query which is:



SELECT `e`.*,
`cat_index`.`position` AS `cat_index_position`,
`price_index`.`price`,
`price_index`.`tax_class_id`,
`price_index`.`final_price`,
IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`,
`price_index`.`min_price`,
`price_index`.`max_price`,
`price_index`.`tier_price`
FROM `catalog_product_entity` AS `e`
INNER JOIN `catalog_category_product_index` AS `cat_index` ON cat_index.product_id=e.entity_id
AND cat_index.store_id=1
AND cat_index.visibility IN(2,
4)
AND cat_index.category_id='31'
INNER JOIN `cataloginventory_stock_status` AS `stock_status_index` ON e.entity_id = stock_status_index.product_id
AND stock_status_index.website_id = '1'
AND stock_status_index.stock_id = 1
INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id
AND price_index.website_id = '1'
AND price_index.customer_group_id = 0
INNER JOIN `search_tmp_58171902857f18_28938044` AS `search_result` ON e.entity_id = search_result.entity_id
WHERE (stock_status_index.stock_status=1)
ORDER BY `cat_index`.`position` ASC LIMIT 9


I tried to run this raw query in in console mysql and noticed that it fails on this part:



INNER JOIN `search_tmp_58171902857f18_28938044` AS `search_result` ON e.entity_id = search_result.entity_id


which is probably virtual table



without this JOIN query returns collections as expected



any suggestions for directions of debugging would be much appreciated



PS
cache is turned off, and I have rebuilt indexes via bin/magento indexer:reindex,
the theme is porto










share|improve this question























  • I could not solve it in my store, I also use the porto theme and I have problems when I type something in the search bar, the result is null. Exception #1 (PDOException): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'search_result.score' in 'order clause' my version of magento is 2.2.2 and already it is in agreement with the alteration of the Magento Master

    – Gabriel Fragoso
    6 hours ago














5












5








5


3






I just imported products into fresh magento2 instance and encountered issue that category product listing block are empty, although the products successfully appear in database . I have debugged list.phtml block and dumped the collection query which is:



SELECT `e`.*,
`cat_index`.`position` AS `cat_index_position`,
`price_index`.`price`,
`price_index`.`tax_class_id`,
`price_index`.`final_price`,
IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`,
`price_index`.`min_price`,
`price_index`.`max_price`,
`price_index`.`tier_price`
FROM `catalog_product_entity` AS `e`
INNER JOIN `catalog_category_product_index` AS `cat_index` ON cat_index.product_id=e.entity_id
AND cat_index.store_id=1
AND cat_index.visibility IN(2,
4)
AND cat_index.category_id='31'
INNER JOIN `cataloginventory_stock_status` AS `stock_status_index` ON e.entity_id = stock_status_index.product_id
AND stock_status_index.website_id = '1'
AND stock_status_index.stock_id = 1
INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id
AND price_index.website_id = '1'
AND price_index.customer_group_id = 0
INNER JOIN `search_tmp_58171902857f18_28938044` AS `search_result` ON e.entity_id = search_result.entity_id
WHERE (stock_status_index.stock_status=1)
ORDER BY `cat_index`.`position` ASC LIMIT 9


I tried to run this raw query in in console mysql and noticed that it fails on this part:



INNER JOIN `search_tmp_58171902857f18_28938044` AS `search_result` ON e.entity_id = search_result.entity_id


which is probably virtual table



without this JOIN query returns collections as expected



any suggestions for directions of debugging would be much appreciated



PS
cache is turned off, and I have rebuilt indexes via bin/magento indexer:reindex,
the theme is porto










share|improve this question














I just imported products into fresh magento2 instance and encountered issue that category product listing block are empty, although the products successfully appear in database . I have debugged list.phtml block and dumped the collection query which is:



SELECT `e`.*,
`cat_index`.`position` AS `cat_index_position`,
`price_index`.`price`,
`price_index`.`tax_class_id`,
`price_index`.`final_price`,
IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`,
`price_index`.`min_price`,
`price_index`.`max_price`,
`price_index`.`tier_price`
FROM `catalog_product_entity` AS `e`
INNER JOIN `catalog_category_product_index` AS `cat_index` ON cat_index.product_id=e.entity_id
AND cat_index.store_id=1
AND cat_index.visibility IN(2,
4)
AND cat_index.category_id='31'
INNER JOIN `cataloginventory_stock_status` AS `stock_status_index` ON e.entity_id = stock_status_index.product_id
AND stock_status_index.website_id = '1'
AND stock_status_index.stock_id = 1
INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id
AND price_index.website_id = '1'
AND price_index.customer_group_id = 0
INNER JOIN `search_tmp_58171902857f18_28938044` AS `search_result` ON e.entity_id = search_result.entity_id
WHERE (stock_status_index.stock_status=1)
ORDER BY `cat_index`.`position` ASC LIMIT 9


I tried to run this raw query in in console mysql and noticed that it fails on this part:



INNER JOIN `search_tmp_58171902857f18_28938044` AS `search_result` ON e.entity_id = search_result.entity_id


which is probably virtual table



without this JOIN query returns collections as expected



any suggestions for directions of debugging would be much appreciated



PS
cache is turned off, and I have rebuilt indexes via bin/magento indexer:reindex,
the theme is porto







magento2 collection sql






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Oct 31 '16 at 14:16









IljaIlja

768924




768924













  • I could not solve it in my store, I also use the porto theme and I have problems when I type something in the search bar, the result is null. Exception #1 (PDOException): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'search_result.score' in 'order clause' my version of magento is 2.2.2 and already it is in agreement with the alteration of the Magento Master

    – Gabriel Fragoso
    6 hours ago



















  • I could not solve it in my store, I also use the porto theme and I have problems when I type something in the search bar, the result is null. Exception #1 (PDOException): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'search_result.score' in 'order clause' my version of magento is 2.2.2 and already it is in agreement with the alteration of the Magento Master

    – Gabriel Fragoso
    6 hours ago

















I could not solve it in my store, I also use the porto theme and I have problems when I type something in the search bar, the result is null. Exception #1 (PDOException): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'search_result.score' in 'order clause' my version of magento is 2.2.2 and already it is in agreement with the alteration of the Magento Master

– Gabriel Fragoso
6 hours ago





I could not solve it in my store, I also use the porto theme and I have problems when I type something in the search bar, the result is null. Exception #1 (PDOException): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'search_result.score' in 'order clause' my version of magento is 2.2.2 and already it is in agreement with the alteration of the Magento Master

– Gabriel Fragoso
6 hours ago










2 Answers
2






active

oldest

votes


















4














To debug this, temporarily change createTemporaryTable to createTable in



MagentoFrameworkSearchAdapterMysqlTemporaryStorage::createTemporaryTable



    $table->setOption('type', 'memory');
$connection->createTable($table); // changed
return $table;
}


No you will be able to inspect the table with other MySQL tools such as PhpMyAdmin.



In my case the table was empty, so I further debugged:



MagentoFrameworkSearchAdapterMysqlAdapter::query


and had a look at the $query variable (via Evaluate in the Debugger (string)$query)



The lead to the following query:



 SELECT `main_select`.`entity_id`, MAX(score) AS `relevance` FROM (SELECT `search_index`.`entity_id`, (((0) + (0)) * 1) AS `score` FROM `catalogsearch_fulltext_scope4` AS `search_index`
LEFT JOIN `catalog_eav_attribute` AS `cea` ON search_index.attribute_id = cea.attribute_id
INNER JOIN `catalog_category_product_index` AS `category_ids_index` ON search_index.entity_id = category_ids_index.product_id
LEFT JOIN `catalog_product_index_eav` AS `capacity_filter` ON search_index.entity_id = capacity_filter.entity_id AND capacity_filter.attribute_id = 142 AND capacity_filter.store_id = 1
LEFT JOIN `cataloginventory_stock_status` AS `capacity_filter_stock` ON capacity_filter_stock.product_id = capacity_filter.source_id
LEFT JOIN `cataloginventory_stock_status` AS `stock_index` ON search_index.entity_id = stock_index.product_id AND stock_index.website_id = 0 WHERE (stock_index.stock_status = 1) AND (category_ids_index.category_id = 28) AND (capacity_filter.value = '30' AND capacity_filter_stock.stock_status = 1)) AS `main_select` GROUP BY `entity_id` ORDER BY `relevance` DESC
LIMIT 10000


There is a wrong store ID in there (1) while I am in store 4 - when changing the store ID to 4, it works.



The query is built in



MagentoFrameworkSearchAdapterMysqlMapper::buildQuery


Goes down to



MagentoCatalogSearchModelSearchFilterMapperTermDropdownStrategy::apply



Here is as bug:



    $joinCondition = sprintf(
'search_index.entity_id = %1$s.entity_id AND %1$s.attribute_id = %2$d AND %1$s.store_id = %3$d',
$alias,
$attribute->getId(),
$this->storeManager->getWebsite()->getId()
);


Website ID is taken as store ID



The bug is fixed in Magento master:



https://github.com/magento/magento2/commit/2c62aa376eeed447e632aedb42085c9d255520df






share|improve this answer





















  • 2





    great explanation! had to mess with this time to time, thanks for the detailed post !

    – Ilja
    Aug 28 '17 at 10:47



















2














This was caused improperly build index catalogsearch_fulltext, indexer_id in indexer_state table was in working state, this should be changed to invalid and reindexed.



TIP FOR THOSE WHO STRUGGLING WITH SAME PROBLEM:



also, temporary table return zero results if products are out of stock or stock qty are 0






share|improve this answer


























  • Ahhh I'm glad this worked for you. In my case they are all valid so I set to invalid and reindexed. Still no luck.

    – Stevie G
    Mar 6 '17 at 9:17











  • see updated answer

    – Ilja
    May 6 '17 at 16:00











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
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f143420%2fmagento2-search-tmp-join-leads-to-empty-results-in-category-listing%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









4














To debug this, temporarily change createTemporaryTable to createTable in



MagentoFrameworkSearchAdapterMysqlTemporaryStorage::createTemporaryTable



    $table->setOption('type', 'memory');
$connection->createTable($table); // changed
return $table;
}


No you will be able to inspect the table with other MySQL tools such as PhpMyAdmin.



In my case the table was empty, so I further debugged:



MagentoFrameworkSearchAdapterMysqlAdapter::query


and had a look at the $query variable (via Evaluate in the Debugger (string)$query)



The lead to the following query:



 SELECT `main_select`.`entity_id`, MAX(score) AS `relevance` FROM (SELECT `search_index`.`entity_id`, (((0) + (0)) * 1) AS `score` FROM `catalogsearch_fulltext_scope4` AS `search_index`
LEFT JOIN `catalog_eav_attribute` AS `cea` ON search_index.attribute_id = cea.attribute_id
INNER JOIN `catalog_category_product_index` AS `category_ids_index` ON search_index.entity_id = category_ids_index.product_id
LEFT JOIN `catalog_product_index_eav` AS `capacity_filter` ON search_index.entity_id = capacity_filter.entity_id AND capacity_filter.attribute_id = 142 AND capacity_filter.store_id = 1
LEFT JOIN `cataloginventory_stock_status` AS `capacity_filter_stock` ON capacity_filter_stock.product_id = capacity_filter.source_id
LEFT JOIN `cataloginventory_stock_status` AS `stock_index` ON search_index.entity_id = stock_index.product_id AND stock_index.website_id = 0 WHERE (stock_index.stock_status = 1) AND (category_ids_index.category_id = 28) AND (capacity_filter.value = '30' AND capacity_filter_stock.stock_status = 1)) AS `main_select` GROUP BY `entity_id` ORDER BY `relevance` DESC
LIMIT 10000


There is a wrong store ID in there (1) while I am in store 4 - when changing the store ID to 4, it works.



The query is built in



MagentoFrameworkSearchAdapterMysqlMapper::buildQuery


Goes down to



MagentoCatalogSearchModelSearchFilterMapperTermDropdownStrategy::apply



Here is as bug:



    $joinCondition = sprintf(
'search_index.entity_id = %1$s.entity_id AND %1$s.attribute_id = %2$d AND %1$s.store_id = %3$d',
$alias,
$attribute->getId(),
$this->storeManager->getWebsite()->getId()
);


Website ID is taken as store ID



The bug is fixed in Magento master:



https://github.com/magento/magento2/commit/2c62aa376eeed447e632aedb42085c9d255520df






share|improve this answer





















  • 2





    great explanation! had to mess with this time to time, thanks for the detailed post !

    – Ilja
    Aug 28 '17 at 10:47
















4














To debug this, temporarily change createTemporaryTable to createTable in



MagentoFrameworkSearchAdapterMysqlTemporaryStorage::createTemporaryTable



    $table->setOption('type', 'memory');
$connection->createTable($table); // changed
return $table;
}


No you will be able to inspect the table with other MySQL tools such as PhpMyAdmin.



In my case the table was empty, so I further debugged:



MagentoFrameworkSearchAdapterMysqlAdapter::query


and had a look at the $query variable (via Evaluate in the Debugger (string)$query)



The lead to the following query:



 SELECT `main_select`.`entity_id`, MAX(score) AS `relevance` FROM (SELECT `search_index`.`entity_id`, (((0) + (0)) * 1) AS `score` FROM `catalogsearch_fulltext_scope4` AS `search_index`
LEFT JOIN `catalog_eav_attribute` AS `cea` ON search_index.attribute_id = cea.attribute_id
INNER JOIN `catalog_category_product_index` AS `category_ids_index` ON search_index.entity_id = category_ids_index.product_id
LEFT JOIN `catalog_product_index_eav` AS `capacity_filter` ON search_index.entity_id = capacity_filter.entity_id AND capacity_filter.attribute_id = 142 AND capacity_filter.store_id = 1
LEFT JOIN `cataloginventory_stock_status` AS `capacity_filter_stock` ON capacity_filter_stock.product_id = capacity_filter.source_id
LEFT JOIN `cataloginventory_stock_status` AS `stock_index` ON search_index.entity_id = stock_index.product_id AND stock_index.website_id = 0 WHERE (stock_index.stock_status = 1) AND (category_ids_index.category_id = 28) AND (capacity_filter.value = '30' AND capacity_filter_stock.stock_status = 1)) AS `main_select` GROUP BY `entity_id` ORDER BY `relevance` DESC
LIMIT 10000


There is a wrong store ID in there (1) while I am in store 4 - when changing the store ID to 4, it works.



The query is built in



MagentoFrameworkSearchAdapterMysqlMapper::buildQuery


Goes down to



MagentoCatalogSearchModelSearchFilterMapperTermDropdownStrategy::apply



Here is as bug:



    $joinCondition = sprintf(
'search_index.entity_id = %1$s.entity_id AND %1$s.attribute_id = %2$d AND %1$s.store_id = %3$d',
$alias,
$attribute->getId(),
$this->storeManager->getWebsite()->getId()
);


Website ID is taken as store ID



The bug is fixed in Magento master:



https://github.com/magento/magento2/commit/2c62aa376eeed447e632aedb42085c9d255520df






share|improve this answer





















  • 2





    great explanation! had to mess with this time to time, thanks for the detailed post !

    – Ilja
    Aug 28 '17 at 10:47














4












4








4







To debug this, temporarily change createTemporaryTable to createTable in



MagentoFrameworkSearchAdapterMysqlTemporaryStorage::createTemporaryTable



    $table->setOption('type', 'memory');
$connection->createTable($table); // changed
return $table;
}


No you will be able to inspect the table with other MySQL tools such as PhpMyAdmin.



In my case the table was empty, so I further debugged:



MagentoFrameworkSearchAdapterMysqlAdapter::query


and had a look at the $query variable (via Evaluate in the Debugger (string)$query)



The lead to the following query:



 SELECT `main_select`.`entity_id`, MAX(score) AS `relevance` FROM (SELECT `search_index`.`entity_id`, (((0) + (0)) * 1) AS `score` FROM `catalogsearch_fulltext_scope4` AS `search_index`
LEFT JOIN `catalog_eav_attribute` AS `cea` ON search_index.attribute_id = cea.attribute_id
INNER JOIN `catalog_category_product_index` AS `category_ids_index` ON search_index.entity_id = category_ids_index.product_id
LEFT JOIN `catalog_product_index_eav` AS `capacity_filter` ON search_index.entity_id = capacity_filter.entity_id AND capacity_filter.attribute_id = 142 AND capacity_filter.store_id = 1
LEFT JOIN `cataloginventory_stock_status` AS `capacity_filter_stock` ON capacity_filter_stock.product_id = capacity_filter.source_id
LEFT JOIN `cataloginventory_stock_status` AS `stock_index` ON search_index.entity_id = stock_index.product_id AND stock_index.website_id = 0 WHERE (stock_index.stock_status = 1) AND (category_ids_index.category_id = 28) AND (capacity_filter.value = '30' AND capacity_filter_stock.stock_status = 1)) AS `main_select` GROUP BY `entity_id` ORDER BY `relevance` DESC
LIMIT 10000


There is a wrong store ID in there (1) while I am in store 4 - when changing the store ID to 4, it works.



The query is built in



MagentoFrameworkSearchAdapterMysqlMapper::buildQuery


Goes down to



MagentoCatalogSearchModelSearchFilterMapperTermDropdownStrategy::apply



Here is as bug:



    $joinCondition = sprintf(
'search_index.entity_id = %1$s.entity_id AND %1$s.attribute_id = %2$d AND %1$s.store_id = %3$d',
$alias,
$attribute->getId(),
$this->storeManager->getWebsite()->getId()
);


Website ID is taken as store ID



The bug is fixed in Magento master:



https://github.com/magento/magento2/commit/2c62aa376eeed447e632aedb42085c9d255520df






share|improve this answer















To debug this, temporarily change createTemporaryTable to createTable in



MagentoFrameworkSearchAdapterMysqlTemporaryStorage::createTemporaryTable



    $table->setOption('type', 'memory');
$connection->createTable($table); // changed
return $table;
}


No you will be able to inspect the table with other MySQL tools such as PhpMyAdmin.



In my case the table was empty, so I further debugged:



MagentoFrameworkSearchAdapterMysqlAdapter::query


and had a look at the $query variable (via Evaluate in the Debugger (string)$query)



The lead to the following query:



 SELECT `main_select`.`entity_id`, MAX(score) AS `relevance` FROM (SELECT `search_index`.`entity_id`, (((0) + (0)) * 1) AS `score` FROM `catalogsearch_fulltext_scope4` AS `search_index`
LEFT JOIN `catalog_eav_attribute` AS `cea` ON search_index.attribute_id = cea.attribute_id
INNER JOIN `catalog_category_product_index` AS `category_ids_index` ON search_index.entity_id = category_ids_index.product_id
LEFT JOIN `catalog_product_index_eav` AS `capacity_filter` ON search_index.entity_id = capacity_filter.entity_id AND capacity_filter.attribute_id = 142 AND capacity_filter.store_id = 1
LEFT JOIN `cataloginventory_stock_status` AS `capacity_filter_stock` ON capacity_filter_stock.product_id = capacity_filter.source_id
LEFT JOIN `cataloginventory_stock_status` AS `stock_index` ON search_index.entity_id = stock_index.product_id AND stock_index.website_id = 0 WHERE (stock_index.stock_status = 1) AND (category_ids_index.category_id = 28) AND (capacity_filter.value = '30' AND capacity_filter_stock.stock_status = 1)) AS `main_select` GROUP BY `entity_id` ORDER BY `relevance` DESC
LIMIT 10000


There is a wrong store ID in there (1) while I am in store 4 - when changing the store ID to 4, it works.



The query is built in



MagentoFrameworkSearchAdapterMysqlMapper::buildQuery


Goes down to



MagentoCatalogSearchModelSearchFilterMapperTermDropdownStrategy::apply



Here is as bug:



    $joinCondition = sprintf(
'search_index.entity_id = %1$s.entity_id AND %1$s.attribute_id = %2$d AND %1$s.store_id = %3$d',
$alias,
$attribute->getId(),
$this->storeManager->getWebsite()->getId()
);


Website ID is taken as store ID



The bug is fixed in Magento master:



https://github.com/magento/magento2/commit/2c62aa376eeed447e632aedb42085c9d255520df







share|improve this answer














share|improve this answer



share|improve this answer








edited Aug 28 '17 at 9:52

























answered Aug 28 '17 at 9:22









AlexAlex

9,5161754113




9,5161754113








  • 2





    great explanation! had to mess with this time to time, thanks for the detailed post !

    – Ilja
    Aug 28 '17 at 10:47














  • 2





    great explanation! had to mess with this time to time, thanks for the detailed post !

    – Ilja
    Aug 28 '17 at 10:47








2




2





great explanation! had to mess with this time to time, thanks for the detailed post !

– Ilja
Aug 28 '17 at 10:47





great explanation! had to mess with this time to time, thanks for the detailed post !

– Ilja
Aug 28 '17 at 10:47













2














This was caused improperly build index catalogsearch_fulltext, indexer_id in indexer_state table was in working state, this should be changed to invalid and reindexed.



TIP FOR THOSE WHO STRUGGLING WITH SAME PROBLEM:



also, temporary table return zero results if products are out of stock or stock qty are 0






share|improve this answer


























  • Ahhh I'm glad this worked for you. In my case they are all valid so I set to invalid and reindexed. Still no luck.

    – Stevie G
    Mar 6 '17 at 9:17











  • see updated answer

    – Ilja
    May 6 '17 at 16:00
















2














This was caused improperly build index catalogsearch_fulltext, indexer_id in indexer_state table was in working state, this should be changed to invalid and reindexed.



TIP FOR THOSE WHO STRUGGLING WITH SAME PROBLEM:



also, temporary table return zero results if products are out of stock or stock qty are 0






share|improve this answer


























  • Ahhh I'm glad this worked for you. In my case they are all valid so I set to invalid and reindexed. Still no luck.

    – Stevie G
    Mar 6 '17 at 9:17











  • see updated answer

    – Ilja
    May 6 '17 at 16:00














2












2








2







This was caused improperly build index catalogsearch_fulltext, indexer_id in indexer_state table was in working state, this should be changed to invalid and reindexed.



TIP FOR THOSE WHO STRUGGLING WITH SAME PROBLEM:



also, temporary table return zero results if products are out of stock or stock qty are 0






share|improve this answer















This was caused improperly build index catalogsearch_fulltext, indexer_id in indexer_state table was in working state, this should be changed to invalid and reindexed.



TIP FOR THOSE WHO STRUGGLING WITH SAME PROBLEM:



also, temporary table return zero results if products are out of stock or stock qty are 0







share|improve this answer














share|improve this answer



share|improve this answer








edited May 6 '17 at 16:00

























answered Nov 12 '16 at 23:37









IljaIlja

768924




768924













  • Ahhh I'm glad this worked for you. In my case they are all valid so I set to invalid and reindexed. Still no luck.

    – Stevie G
    Mar 6 '17 at 9:17











  • see updated answer

    – Ilja
    May 6 '17 at 16:00



















  • Ahhh I'm glad this worked for you. In my case they are all valid so I set to invalid and reindexed. Still no luck.

    – Stevie G
    Mar 6 '17 at 9:17











  • see updated answer

    – Ilja
    May 6 '17 at 16:00

















Ahhh I'm glad this worked for you. In my case they are all valid so I set to invalid and reindexed. Still no luck.

– Stevie G
Mar 6 '17 at 9:17





Ahhh I'm glad this worked for you. In my case they are all valid so I set to invalid and reindexed. Still no luck.

– Stevie G
Mar 6 '17 at 9:17













see updated answer

– Ilja
May 6 '17 at 16:00





see updated answer

– Ilja
May 6 '17 at 16:00


















draft saved

draft discarded




















































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.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f143420%2fmagento2-search-tmp-join-leads-to-empty-results-in-category-listing%23new-answer', 'question_page');
}
);

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







Popular posts from this blog

what is the purpose of having a “thru cal” on RF PCB?

What does Gandalf whisper to the Moth on the Orthanc in Isengard?

magento2 creating a lot of catalogrule_product_temp tables