I want to delete search terms with 0 search results from magento 2 database by writing sql query in file. How can I do this?
-
We do have an option delete the search terms from the admin , On the Admin sidebar, tap Marketing. Then under SEO & Search, choose Search Terms. here we have option to filter results in the grid and delete it.purna gattu– purna gattu2019年03月26日 08:47:09 +00:00Commented Mar 26, 2019 at 8:47
-
I want to create a file in magento which I will run through cron job everyday to delete the search terms automatically. I am asking for solution in code file.chanchal– chanchal2019年03月26日 08:50:51 +00:00Commented Mar 26, 2019 at 8:50
-
Delete the records from the 'search_query' whose 'num_results = 0'.purna gattu– purna gattu2019年03月26日 08:59:14 +00:00Commented Mar 26, 2019 at 8:59
2 Answers 2
The query should be like,
DELETE FROM `search_query` WHERE `num_results` = 0;
Or you can use following PHP code.
protected $queryCollectionFactrory;
public function __construct(
\Magento\Search\Model\ResourceModel\Query\CollectionFactory $queryCollectionFactrory
)
{
$this->queryCollectionFactrory = $queryCollectionFactrory;
}
public function removeZeroResults()
{
$collection = $this->queryCollectionFactrory->create();
$collection->addFieldToFilter('num_results', 0);
foreach($collection as $row)
{
$row->delete();
}
}
answered Mar 26, 2019 at 8:47
Yash Shah
2,5331 gold badge11 silver badges18 bronze badges
-
where to place the above php code file ? I mean to say the path . Do I need to create a custom module for this ?chanchal– chanchal2019年03月26日 09:34:12 +00:00Commented Mar 26, 2019 at 9:34
-
You can create a custom module or you can place this code on whatever event you want to delete records with 0 search result.Yash Shah– Yash Shah2019年03月26日 10:30:12 +00:00Commented Mar 26, 2019 at 10:30
Select * FROM search_query WHERE 'query_text' LIKE '% textYouWant%'
once you see the values then you can do this :
Delete FROM search_query WHERE 'query_text' LIKE '% textYouWant%'
answered Nov 14, 2022 at 9:38
Oscprofessionals
1,7959 silver badges21 bronze badges
default