7. Problem with default
WordPress Search
• Default WordPress uses SQL like operator
and % wildcard character to get search
result
• SQL’s Like operator doesn’t care much
about the relevancy of the result
• Like operation is too slow in large set of
textual data
• WordPress sort the search result by date
9. So what’s resolution ?
• Use the MySQL Full-Text indexing and Search.
• Use Full-Text search server
10. MySQL Full-Text search
• http://wordpress.org/plugins/wp-cjk-fulltext-index/
• It improve the searching speed and result relevancy
by using MATCH AGAINST than LIKE function
• Use Full-Text index
http://dev.mysql.com/doc/refman/5.0/en/fulltextsearch.html
11. Full-Text Search SQL
Example
Normal Like Search :
WHERE (post_title LIKE '%morbi%')
OR
(post_content LIKE '%morbi%')
Full-Text MySQL Search :
WHERE MATCH (post_title,post_content) AGAINST
(’morbi');
12. Pros and Cons MySQL
Full-Text Indexing
• Pros
• Can be used in Shared hosting
• No need to install extra search server
• Cons
• Still slow with very large data
• Not featured rich like Search server
14. WordPress 3.7 has better
search
• Please upgrade your WordPress now. Relevancy is
added in the search of WordPress 3.7
• Official Note from WordPress 3.7 release :
Search results are now ordered by how well the
search query matches a post, instead of ordered
only by date. For example, when your search terms
match a post title, that result will be pushed to the
top.
15. Difference in Search SQL
• Wordpress 3.6
WHERE ((wp_posts.post_title LIKE '%morbi%') OR
(wp_posts.post_content LIKE '%morbi%'))
ORDER BY wp_posts.post_date DESC
• WordPress 3.7
WHERE ((wp_posts.post_title LIKE '%morbi%') OR
(wp_posts.post_content LIKE '%morbi%'))
ORDER BY wp_posts.post_title LIKE '%morbi%' DESC,
wp_posts.post_date DESC
17. Why full text search
engine
• Provides more relevant result.
• Uses a ranking algorithm to quantify how
strongly a given record matches search
keywords.
• Fast indexing
• Search is fast compared to default MySQL
search and MyQL Full text indexing
• Allow to use special operators like OR or NOT
in search
18. Popular Full text search
engines
• Apache Solr ( http://lucene.apache.org/solr/ )
• Elastic Search ( http://www.elasticsearch.org/ )
• Sphinx ( http://sphinxsearch.com/ )
19. Why Sphinx ?
• Easy to setup and use
• Good documentation
• Used by many big websites like
Craiglist, Groupon, Metacafe etc
• My personal choice
21. Installation of Sphinx
For Mac ( using Homebrew)
brew install sphinx –-mysql
For Windows / Ubuntu / Debian / RHEL/CentOS
http://sphinxsearch.com/downloads/release/
23. Two main components
When installed sphinx, two application called indexer
and searchd gets installed.
• Indexer
This component of Sphinx is used for indexing the
data.
• Searchd
This is a search daemon which returns of the
document id of matched search results.
30. To run indexer and
searchd Manually
• To run indexer manually
/usr/local/sphinx/bin/indexer --rotate –config
/<path of wordpress>/wpcontent/uploads/sphinx/sphinx.conf wp_delta
wp_main wp_stats
• To run searchd manually
/usr/local/sphinx/bin/searchd --config /<pat of
wordpress>/wp-content/uploads/sphinx/sphinx.conf
34. Doh! This guy is done
with his boring talk
Listening to next person is always boring. To make it
exciting you’ve to do it yourself
Thank you!
Any Questions ?
Notes de l'éditeur
Move slide of the relevant search result to lastSpecify we server requirement to install Sphinx first Add more screens if possibleSpecify the the domain of each solide properlyMake it around 15 to 20 mins if possible
/usr/local/sphinx/bin/searchd --config /Applications/MAMP/htdocs/wpsphinx/wp-content/uploads/sphinx/sphinx.conf --stop to stop it manually