Why on-site Search matters.
Issues in implementation of Search in M1.
New architecture of on-site Search in Magento 2. Extensibility and customization of Search.
Search accuracy improvements.
How-To implement a Search adapter for Magento.
Search API.
The right way to write a Search Extension.
5. Why on-site Search matters
• Searching has become the predominant method for users to find
products on websites.
• The Search feature on website is immensely important as those
searching have a better idea of what they want, compared to those
who are browsing using the site links and navigation.
Searchers are almost twice as likely to convert than
non-searchers in a given visit.
7. M1 Search problems
Like, Full Text,
Combined -
confusing for
merchants.
Limited ability
for extension
and
customization
High degrees
of code
coupling
Weighting
attributes only
available in EE
Like, Combined
are SLOW
Low Search
Accuracy
8. M1 Search problems
FullText Search
doesn’t support
partial phrase
matching
MyISAM FullText
by default ignores
words under 4
characters
There is no
SOLR 4.*
support for EE
version
MyISAM
FullText has a
list of ignored
words
Others
12. The 12 Query Types
Identified during large-scale usability study of e-commerce search made by Baymard Institute
13. 5 essential query types
1. Exact
2. Product Type
3. Feature
4. Thematic
5. Relational Searches.
Users can get by with basic e-commerce search when these 5 query
types are supported. Conversely, failing to support any of these core
query types will result in a defective search experience.
21. Simple Example
1. User inputs search request into the quick search form. For
example: “gold iPhone“
2. Search request comes to back-end and Magento fulfill
MagentoSearchApiSearchInterfaces::search(SearchCriteri
aInterface $searchCriteria)
3. Implementation reads declaration for current search request (Quick
Search) .
4. Add Searchable attributes including custom attributes.
Add Filter queries for visibility, price, category, color
Aggregations for: price, color, category
22. Simple Example
5. Bind user's data:
“gold iPhone" ->
<query xsi:type="matchQuery" value="$search_term$" name="search">
"visibility" -> Search (2) and Category and Search (4)
6. Clean unused queries and filters:
price, category, color (filter)
7. Build final request
8. Search engine handles request and gets results
While navigation tools and site architecture are almost equally important, more and more, consumers are using your on-site search to find what they are looking for quickly.
Search Types: Like, Full Text, Combined are confusing for merchants. Default value – “Like” leads to poor performance and low relevance of results.
Search provides limited ability for extension and customization. 3rd party developers not able to customize Magento's search module without having to rewrite it completely.
High code coupling.
Weighting attributes functionality is available just in EE version with SOLR
MyISAM FULLTEXT has some quirks - it has a list of ignored words which can be problematic if your product names are made up of these words.
MyISAM FULLTEXT by default ignores FULLTEXT queries under 4 characters. Attributes with short values will be ignored unless you change this value.
There is no SOLR 4.* support for EE version
FULLTEXT search doesn’t support partial phrase matching
Others