Magento – magento 2 : catalog search with less than 3 characters

magento-2.1magento2search

I am working on magento 2.1.3.

Is there any possibility to search with 2 characters using catalog search?

Now i can't able to search terms like tv.

Best Answer

I do not know your search engine, I suppose that you use Mysql. It works out of the box with ElasticSearch.

Resolution :

First set the minimun search characters to 1 in Magento configuration : Admin -> Stores -> Configuration -> Catalog -> Catalog -> Catalog Search

The data indexed (catalogsearch_fulltext_scope1) looks like :

*************************** 1. row ***************************
   entity_id: 45
attribute_id: 73
  data_index: tv

The SQL query for 'tv' request:

SELECT `main_select`.`entity_id`, MAX(score) AS `relevance` FROM (SELECT `search_index`.`entity_id`, ((0) + LEAST((MATCH (data_index) AGAINST ('tv' IN BOOLEAN MODE)), 1000000) * POW(2, search_weight)) AS `score` FROM `catalogsearch_fulltext_scope1` AS `search_index` LEFT JOIN `catalog_eav_attribute` AS `cea` ON search_index.attribute_id = cea.attribute_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 (MATCH (data_index) AGAINST ('tv' IN BOOLEAN MODE))) AS `main_select` GROUP BY `entity_id` ORDER BY `relevance` DESC LIMIT 10000

If you check Mysql documentation, there are two parameters for Configuring Minimum and Maximum Word Length :

http://dev.mysql.com/doc/refman/5.7/en/fulltext-fine-tuning.html

So edit your my.cnf file, add these parameters :

ft_min_word_len = 1
innodb_ft_min_token_size = 1

Restart mysql

service mysql restart

Rebuild your index

bin/magento indexer:reindex

Then you will see your product on the search result page.

Related Topic