Though often a key method of navigation, site search often gets the short end of the stick in development, either by handing the job over to Google or just enabling full text search in the database. In this talk we look at how full text search actually works, how to integrate search into your PHP application, and how it's possible to provide better results than Google - at least on your own site.
8. Inverted Index
Term Documents
best 1 (4, 16), 4 (422), 129 (344) ...
what 24 (50, 98), 75 (33, 208) ...
would 99 (32, 599), 201 (344) ..
... ...
8
9. Boolean Query Merge
Query: Best Western Hotel
best 1 4 129 298 305 338
western 4 95 194 204 298 305
working 4 298 305
hotel 2 40 200 298 355 402
Result: Document 298
9
10. Lorem ipsum dolor sit amet,
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed sit amet ante
vitae enim elementum semper sodales quis
consectetur adipiscing elit. Sed sit amet ante
vitae enim elementum semper sodalesipsum. Aliquam vel condimentum Lorem ipsum dolor sit amet,
quis neque.
ipsum. Aliquam vel condimentum neque. Curabitur ornare feugiat ornare. Donec
consectetur adipiscing elit. Sed sit amet ante
consectetur elit metus. Nulla eleifend
Curabitur ornare feugiat ornare. Donec vitae enim elementum semper sodales quis
consectetur elit metus. Nulla eleifend tincidunt massa et euismod. Vestibulum ipsum. Aliquam vel condimentum neque.
vestibulum, justo vel egestas elementum,
tincidunt massa et euismod. Vestibulum sit amet,
Lorem ipsum dolor Curabitur ornare feugiat ornare. Donec
vestibulum, justo consectetur elementum,elit.enim sit ametquam, vel gravida est
vel egestas adipiscing purus
Sed
ornare
ante consectetur elit metus. Nulla eleifend
purus enim ornarevitae enim elementum sempernibh.
quam, vel gravida est vel sodales quis
enim
tincidunt massa et euismod. Vestibulum
Lorem ipsum dolor sit amet, consectetur enim vel nibh.
Lorem ipsum dolor ipsum. Aliquam vel condimentum neque. fringillavestibulum, justo vel egestas elementum,
sit amet, Nam non eros nisi, eget justo.
consectetur adipiscingCurabitur sit ametfeugiat ornare. Donec mauris vehicula enim ornare quam, vel gravida est
elit. Sed ornare ante purus
adipiscing elit. Sed sit amet ante vitae enim vitae enim elementum consectetur elitjusto.Fusce vel risus vitae
Nam non eros nisi,semper sodalesmetus. Nulla eleifend
eget fringilla quis enim vel nibh.
Fusce vel risus condimentum neque. facilisis sit amet in mi. Nulla ut turpis id
ipsum. Aliquam velvitae maurismassa et euismod. Vestibulum
tincidunt vehicula
elementum semper sodales quis ipsum. Aliquam facilisis sit amet in mi. Nulla ut turpis felis sollicitudin dictum sed nonNam non eros nisi, eget fringilla justo.
Curabitur ornare feugiat ornare. Donec velid
vestibulum, justo egestas elementum, ipsum.
Praesent gravida nulla, sed blandit leo.
ut risus est
Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet,
consectetur elit metus.purus enim ornare quam, vel volutpat laoreet lacus,Fusce vel risus vitae mauris vehicula
felis sollicitudin dictum sed non ipsum.
Nulla eleifend
vel condimentum neque. Curabitur ornare enim Vestibulum Curabitur ut
consectetur adipiscing elit. Sed sit amet ante
consectetur adipiscing elit. Sed sit amet ante
tincidunt massa risus nulla, sed nibh. leo.consectetur arcu vestibulum vel.facilisis sit amet in mi. Nulla ut turpis id
Praesent ut et euismod.vel blandit
ut sodales Donec
Curabitur volutpat laoreet lacus, vitae enim elementum semper vitae enim elementum semper sodales quis
quis
felis sollicitudin dictum sed non ipsum.
vestibulum, justo vel egestas elementum, dapibus fringilla arcu, et semper lacus
feugiat ornare. Donec consectetur elit metus. Nam non vel. ipsum. Aliquam vel condimentumLorem ipsumut risussit amet, blandit leo.
consectetur arcu vestibulumeros nisi, eget fringilla justo.
purus enim ornare quam, vel gravida est Donec ipsum. Praesent vel condimentum neque.
neque.
Aliquam dolor nulla, sed
arcu, vel risusCurabitur ornare feugiat ornare.consectetur adipiscing elit. Sed Donec ut
Curabitur ornare volutpat laoreetsit amet ante
Donec
enim dapibus fringilla Fusce et sempervitae mauris vehicula
vel nibh. lacus Curabitur feugiat ornare. lacus,
consectetur elitut turpisNulla eleifendenim elementumNulla eleifend quis
metus. id consectetur elit metus. semper sodales Donec
Nulla eleifend tincidunt massa et euismod. facilisis sit amet in mi. Nulla vitae consectetur arcu vestibulum vel.
tincidunt massa et euismod. Vestibulum massa et euismod. Vestibulum lacus
tincidunt
Nam non eros nisi, eget fringilla justo. dictum sed non ipsum.
felis sollicitudin ipsum. dapibus fringilla arcu, et semper
Aliquam vel condimentum neque.
vestibulum, justo vel egestas elementum, ornare vel egestas elementum,
vestibulum, justo feugiat ornare. Donec
Vestibulum vestibulum, justo vel egestas Fusce vel risus vitae mauris vehicula nulla, sed blandit leo.
Praesent ut risus
purus
Curabitur
Curabitur volutpat enim ornare quam, vel gravidaenim ornare quam, vel gravida est
purus est elit metus. Nulla eleifend
facilisis sit amet in mi. Nulla ut turpis id laoreet lacus, ut consectetur
enim vel nibh.vel. Donec
consectetur arcu vestibulum enim vel nibh. et euismod. Vestibulum
elementum, purus enim ornare quam, vel felis sollicitudin dictum sed non ipsum.
Praesent ut risus nulla, dapibus fringilla arcu, et semper lacus
sed blandit leo.
tincidunt massa
vestibulum, justo vel egestas elementum,
Nam non eros nisi, eget fringilla justo. eros nisi, eget fringilla justo.est
Nam non ornare quam, vel gravida
gravida est enim vel nibh. Curabitur volutpat laoreet lacus, ut purus enim
Fusce vel risus vitae mauris vehicula vel nibh. vitae mauris vehicula
Fusce vel risus
enim
Lorem ipsum dolor sit amet, vel. Donec
consectetur arcu vestibulum
facilisis sit amet in mi. Nulla ut turpis id amet in mi. Nulla ut turpis id
facilisis sit
consectetur adipiscing elit.et semper lacus sollicitudin dictum sed non ipsum.
dapibus fringilla arcu, Sed sit amet ante
felis felis sollicitudin dictum sed non ipsum.
Nam non eros nisi, eget fringilla justo.
Nam non eros nisi, eget fringilla justo. Fusce vel vitae enim elementum semper sodales quis
ipsum. Aliquam vel condimentum neque.
Praesent ut risus nulla, sed blandit leo. utrisus vitae mauris vehicula
Praesent risus nulla, sed blandit leo.
Fusce vel
Curabitur volutpat laoreet lacus, ut
Curabitur volutpat laoreet lacus, ut
Curabitur ornare feugiat ornare. Donec consectetur arcu vestibulum vel. Donec sit arcu vestibulum vel. turpis id
facilisis amet in mi. Nulla ut
risus vitae mauris vehicula facilisis sit amet in Lorem ipsum dolor sit amet,
consectetur
consectetur elit metus. Nulla eleifendadipiscing elit. Sed sit amet ante felis sollicitudin dictum sed non ipsum.
consectetur
Donec
Lorem ipsum dolor sit amet, dapibus fringilla arcu, etLorem ipsum dolor sit amet, et semper lacus
semper lacus fringilla nulla, sed blandit leo.
dapibus ut risus arcu,
consectetur adipiscing enimSed
vitae elit. elementum ante quis Praesent
tincidunt massa et euismod. Vestibulumsit amet semper sodalesconsectetur adipiscing elit. Sed sit amet ante
mi. Nulla ut turpis id felis sollicitudin dictum vestibulum, justo vel egestas elementum,
vitae enim elementum semper sodales quis vitae
Curabitur volutpat laoreet lacus, ut
ipsum. Aliquam vel condimentum neque. enim elementum semper sodales quis
purus enim ornare quam,vel condimentum feugiat ornare. Donec
Curabitur ornare neque.
vel gravida est consectetur arcu vestibulum vel. Donec
sed non ipsum. Praesent ut risus nulla, sed ipsum. Aliquam
enim vel nibh.
Curabitur ornare feugiat ornare. metus.
ipsum. Aliquam vel condimentum neque.
consectetur elit Donec Nulla eleifend Curabiturdapibus feugiat ornare.et semper lacus
ornare
fringilla arcu,
Donec
tincidunt massa et euismod. Vestibulum
blandit leo. Curabitur volutpat laoreet lacus, ut consectetur elit metus. Nulla eleifend
vestibulum,Loremvel egestas elementum,
Nam non eros nisi, eget fringilla justo. justo ipsum dolor sit amet,
tincidunt massa et euismod. Vestibulum
consectetur elit metus. Nulla eleifend
tincidunt ipsum dolor sit amet,
Lorem massa et euismod. Vestibulum
purus enim ornare quam, vel gravidaSed sit amet ante vel egestas elementum,
consectetur adipiscing elit. est
Fusce vel risus vitaejusto vel egestas elementum,
vestibulum, mauris vehicula
consectetur arcu vestibulum vel. Donec dapibus enim vel vitae enim est
nibh.
sit amet in ornare quam, vel id
vestibulum, justo
consectetur adipiscing elit. Sed sit amet ante
facilisis purus enim mi. Nulla ut turpisgravida elementum semper sodales quis
purus enim ornare quam, vel gravida est
vitae enim elementum semper sodales quis
felis sollicitudin dictum sed non ipsum. Aliquam vel condimentum vel nibh. vel condimentum neque.
enim vel nibh.
ipsum.
enim
neque.
fringilla arcu, et semper lacus egestas non. Praesent ut risus nulla, sed blandit leo. nisi, eget fringilla
Nam non eros
ipsum. Aliquam
Curabitur ornare feugiatjusto. Donec
ornare.
Curabitur ornare feugiat ornare. Donec
consectetur elit metus. Nulla eleifend
Curabitur volutpateros nisi,lacus, fringilla vitae mauris vehicula consectetur elit metus. Nulla eleifend
Nam non laoreet egetvel risus justo.
Fusce ut Nam non eros nisi, eget fringilla justo.
Quisque eu purus ut lacus egestas dapibus. consectetur arcu vestibulum vel. Donec inmassa et euismod. Vestibulum
tincidunt
Fusce vel risus vitae mauris amet mi. Nulla ut turpis tincidunt massavitae mauris Vestibulum
facilisis sit vehicula id
Fusce vel risus et euismod. vehicula
felis sollicitudin dictum vel egestas vestibulum,amet in mi. Nulla elementum,
vestibulum, justo
dapibus fringilla arcu, et semper lacus turpis id sed non ipsum.
facilisis sit amet in mi. Nulla ut
elementum,
facilisis sit justo vel egestas ut turpis id
Integer in velit id est dictum bibendum in id mi. purus enim ornareblandit vel gravida est
felis sollicitudin dictum sed non ipsum. sed
Praesent ut risus nulla,
enim vel nibh.
quam, leo.
purus enim ornare quam, velnon ipsum.
felis sollicitudin dictum sed gravida est
Praesent ut risus Curabitur volutpat laoreet lacus, ut enim vel ut risus nulla, sed blandit leo.
nulla, sed blandit leo. Praesent nibh.
consectetur arcu vestibulum vel. Donec
Curabitur volutpat laoreet lacus, ut Curabitur volutpat laoreet lacus, ut
dapibus Nam nonarcu, nisi, eget fringilla justo. arcu vestibulum vel. Donec
fringilla eros
consectetur arcu vestibulum vel. Donec et semper lacus consectetur
Nam non eros nisi, eget fringilla justo.
Fusce vel risus vitae mauris vehicula
dapibus fringilla arcu, et semper lacus Fusce velfringilla arcu, et semper lacus
dapibus risus vitae mauris vehicula
facilisis sit amet in mi. Nulla ut turpis id
facilisis sit amet in mi. Nulla ut turpis id
felis sollicitudin dictum sed non ipsum.
felis sollicitudin dictum sed non ipsum.
Praesent ut risus nulla, sed blandit leo.
Praesent ut risus nulla, sed blandit leo.
Curabitur volutpat laoreet lacus, ut
Curabitur volutpat laoreet lacus, ut
consectetur arcu vestibulum vel. Donec
consectetur arcu vestibulum vel. Donec
dapibus fringilla arcu, et semper lacus
dapibus fringilla arcu, et semper lacus
64. Image Credits
Title http://www.flickr.com/photos/generated/2084287794/
What Do You Want http://www.flickr.com/photos/the_justified_sinner/
You Are Here 2498066986/
http://www.flickr.com/photos/alecvuijlsteke/2692475420/
Integrating Search http://www.flickr.com/photos/squeaks2569/3700355684/
Sphinx http://www.flickr.com/photos/generated/2084287794/
Lucene http://www.flickr.com/photos/mypanda/7731447/
Swish-e http://www.flickr.com/photos/ryan_fung/2239687100/
Solr http://www.flickr.com/photos/m-j-s/2724756177/
Xapian http://www.flickr.com/photos/olibac/3522056495/
Using Search http://www.flickr.com/photos/eneas/175027945/
Improving Search http://www.flickr.com/photos/x-ray_delta_one/3928200642/
Search Performance http://www.flickr.com/photos/maisonbisson/1634408/
Large Scale Search http://www.flickr.com/photos/zedzap/3663508847/
64