using apache solr
DESCRIPTION
intro to full text search solution, Apache SolrTRANSCRIPT
![Page 2: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/2.jpg)
Who am I?
![Page 3: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/3.jpg)
![Page 4: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/4.jpg)
Solr?
![Page 5: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/5.jpg)
![Page 6: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/6.jpg)
Not her!
![Page 7: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/7.jpg)
But a search server
![Page 8: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/8.jpg)
based on Lucene
![Page 9: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/9.jpg)
Lucene?
![Page 10: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/10.jpg)
Full-text search library
![Page 11: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/11.jpg)
100% java :-(
![Page 12: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/12.jpg)
Solr is based on Lucene
![Page 13: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/13.jpg)
XML/HTTP, JSON interface
![Page 14: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/14.jpg)
Open Source
![Page 15: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/15.jpg)
Shield us from using Java
:-)
![Page 16: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/16.jpg)
Who use Solr/Lucene?
![Page 17: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/17.jpg)
Who use Solr/Lucene?
![Page 18: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/18.jpg)
What is our problem?
![Page 19: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/19.jpg)
How do we implement this?
![Page 20: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/20.jpg)
SELECT * FROM post WHERE topic LIKE ‘%aoi%’ OR author LIKE ‘%aoi%’ ORDER BY id DESC
![Page 21: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/21.jpg)
SELECT * FROM post WHERE (topic LIKE ‘%aoi%’ OR author LIKE ‘%aoi%’) OR (topic LIKE ‘%miyabi%’ OR author LIKE ‘%miyabi%’) ORDER BY id DESC
![Page 22: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/22.jpg)
Full table scan=
Performance killer
![Page 23: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/23.jpg)
No search scoring
![Page 24: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/24.jpg)
RDBMS isn’t designed to do this
![Page 25: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/25.jpg)
Use the right tool!
![Page 26: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/26.jpg)
Indexer
Web AppSolrLucene
Update index
Query
Result
![Page 27: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/27.jpg)
1
![Page 28: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/28.jpg)
De!ne schema.xml
![Page 29: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/29.jpg)
<field name="id" type="string" indexed="true" stored="true" /><field name="fullname" type="string" indexed="true" stored="true" /><field name="position" type="string" indexed="true" stored="true" /><field name="tag" type="stringi" indexed="true" stored="true" multiValued="true" />
![Page 30: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/30.jpg)
2
![Page 31: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/31.jpg)
Deploy on any J2EE container
![Page 32: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/32.jpg)
Tomcat, Jetty, etc.
![Page 33: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/33.jpg)
3
![Page 34: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/34.jpg)
Index documents
![Page 35: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/35.jpg)
Document format
<add><doc> <field name=”id”>555</field> <field name=”fullname”>Kaka</field> <field name=”position”>Midfielder</field> <field name=”tag”>AC Milan</field> <field name=”tag”>Brazil</field></doc></add>
![Page 36: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/36.jpg)
Post to Solrhttp://<host>/solr/update
![Page 37: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/37.jpg)
Any language that can do HTTP POST
![Page 38: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/38.jpg)
PHP, Perl, Python
![Page 39: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/39.jpg)
cURL
![Page 40: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/40.jpg)
Commit<commit />
![Page 41: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/41.jpg)
4
![Page 42: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/42.jpg)
Search
![Page 43: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/43.jpg)
Query fromhttp://<host>/solr/select
![Page 44: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/44.jpg)
Use Solr query syntax
![Page 45: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/45.jpg)
http://<host>/solr/select?q=tag:madrid&start=0&rows=2&!=fullname,position,tag
![Page 46: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/46.jpg)
Response in XML or JSON (con!gurable)
![Page 47: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/47.jpg)
<response> <result numFound=”46” start=”0”> <doc> <str name=”fullname”>Sergio Ramos</str> <str name=”position”>Defender</str> <str name=”tag”>Real Madrid</str> <str name=”tag”>Spain</str> </doc> <doc> <str name=”fullname”>Diego Forlan</str> <str name=”position”>Striker</str> <str name=”tag”>Atletico Madrid</str> <str name=”tag”>Uruguay</str> </doc> </result></response>
![Page 48: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/48.jpg)
&wt=json
![Page 49: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/49.jpg)
{ “result”: { “numFound”: 46, “start”: 0, “docs” : [ { “fullname”: “Sergio Ramos”, “position”: “Defender”, “tag”: [“Real Madrid”, “Spain”] }, { “fullname”: “Diego Forlan”, “position”: “Striker”, “tag”: [“Atletico Madrid”, “Uruguay”] } ] }}
![Page 50: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/50.jpg)
Query examples
![Page 51: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/51.jpg)
• David Pizzarro
• Equiv: David OR Pizzarro
• Default operator is “OR” (con"gurable)
• Result: David Villa, David Pizzarro, Claudio Pizzarro, David Seaman
![Page 52: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/52.jpg)
• +David +tag:Roma
• Equiv: David AND tag:Roma
• Result: David Pizzarro
![Page 53: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/53.jpg)
• +David +position:(Striker OR Mid"elder)
• Result: David Villa, David Pizzarro
![Page 54: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/54.jpg)
Updating
![Page 55: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/55.jpg)
Post new document tohttp://<host>/solr/update
![Page 56: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/56.jpg)
Deleting
![Page 57: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/57.jpg)
<delete> <id>345</id> </delete>
![Page 58: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/58.jpg)
<delete><query>tag:Brazil</query></delete>
![Page 59: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/59.jpg)
<delete> <query>*:*</query> </delete>
![Page 60: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/60.jpg)
Thai support
![Page 61: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/61.jpg)
fwdder.com
![Page 62: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/62.jpg)
Sharing forward mails
![Page 63: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/63.jpg)
![Page 64: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/64.jpg)
![Page 65: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/65.jpg)
Use customized !eld in schema.xml
![Page 66: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/66.jpg)
<fieldType name="html_th" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.HTMLStripStandardTokenizerFactory"/> <filter class="solr.ThaiWordFilterFactory" /> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> </fieldType>
![Page 67: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/67.jpg)
<field name="id" type="string" indexed="true" stored="true" /><field name="title" type="html_th" indexed="true" stored="true" /><field name="detail" type="html_th" indexed="true" stored="true" /><field name="tag" type="stringi" indexed="true" stored="true" multiValued="true" /><field name="userid" type="integer" indexed="false" stored="true" />
![Page 68: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/68.jpg)
Index analyzer
![Page 69: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/69.jpg)
Debugging
![Page 70: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/70.jpg)
&debugQuery=on
![Page 71: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/71.jpg)
Further readings
• http://lucene.apache.org/solr/
• http://wiki.apache.org/solr
• http://www.xml.com/pub/a/2006/08/09/solr-indexing-xml-with-lucene-andrest.html
• http://lucene.apache.org/java/docs/scoring.html
![Page 72: Using Apache Solr](https://reader034.vdocuments.net/reader034/viewer/2022042521/5492281ab4795963488b5323/html5/thumbnails/72.jpg)
Q & A