magento2 search_tmp join leads to empty results in category listing
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
add a comment |
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
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
add a comment |
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
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
magento2 collection sql
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
add a comment |
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
add a comment |
2 Answers
2
active
oldest
votes
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
2
great explanation! had to mess with this time to time, thanks for the detailed post !
– Ilja
Aug 28 '17 at 10:47
add a comment |
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
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
add a comment |
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
});
}
});
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%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
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
2
great explanation! had to mess with this time to time, thanks for the detailed post !
– Ilja
Aug 28 '17 at 10:47
add a comment |
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
2
great explanation! had to mess with this time to time, thanks for the detailed post !
– Ilja
Aug 28 '17 at 10:47
add a comment |
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
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
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
add a comment |
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
add a comment |
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
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
add a comment |
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
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
add a comment |
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
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
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
add a comment |
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
add a comment |
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%2f143420%2fmagento2-search-tmp-join-leads-to-empty-results-in-category-listing%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
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