Searching for the grail

  • 845 views
Uploaded on

Search facilities have become such a basic commodity in applications that it's almost taken for granted. …

Search facilities have become such a basic commodity in applications that it's almost taken for granted.
But bundled with a framework such as Grails, you the developer are faced with some limitations and extra concerns: how well is this library developed and backed? does the library fit the framework's paradigm and how good is the support for the tool within the framework itself?
This talk will provided an overview and comparison in search for a piece of the holy grail - a good search facility.

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
845
On Slideshare
0
From Embeds
0
Number of Embeds
5

Actions

Shares
Downloads
11
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Searching For The GrailNoam Tenne
  • 2. $ whoamiNoam Tenne
  • 3. Senior DeveloperSenior Developer
  • 4. blog.10ne.org@NoamTennegithub.com/noamt
  • 5. http://www.flickr.com/photos/aussiegall/Where do we standWhere do we stand
  • 6. Different data
  • 7. Different shapes
  • 8. SphinxTechnologiesInc.
  • 9. SphinxDomain
  • 10. SphinxDomainModel has been modified
  • 11. SphinxDomainUpdate the indexCustomIntegration
  • 12. SphinxDomainUpdate the indexCustomIntegration
  • 13. SphinxDomainSphinx offline for re-indexCustomIntegration
  • 14. Expected interaction
  • 15. EngineCreate or update the mappings on startupMappingsApplication
  • 16. EngineAct on persistence eventsApplicationDomain
  • 17. EngineAct on persistence eventsUpdateDocumentsApplicationDomain
  • 18. What do we choose?What do we choose?http://www.flickr.com/photos/89869792@N00/
  • 19. Searchable PluginSearchable Plugin
  • 20. Uses the Compass projectTo become “Elasticsearch”http://compass-project.org
  • 21. Quick and easy setup
  • 22. Embedded in your applicationEasier maintenance!Great for testing!Is this a good thing?
  • 23. CompassApplicationPlugin
  • 24. Incremental index
  • 25. static searchable = trueMark a Domain as searchable:
  • 26.     static searchable = {        except = [field1]        field2 boost: 2.0    }Mark a Domain as searchable whilecustomizing the mapping:
  • 27. Map domains with annotations
  • 28.  def result =                              Domain.search(query)Search using the domain static API:
  • 29.  def result =                         searchableService.search(query)Search using the introduced service:
  • 30. Whats the threshold?
  • 31. CompassApplication
  • 32. CompassApplication
  • 33. CompassApplication
  • 34. Horizontal growth is stifled
  • 35. CompassApp1DB
  • 36. CompassApp1DBCompassApp2
  • 37. CompassApp1DBCompassApp2CompassApp3
  • 38. RoomtoGrowhttp://www.flickr.com/photos/elwillo/
  • 39. Solr PluginSolr Plugin
  • 40. Backed by The Apache SoftwareFoundationwww.apache.orghttp://lucene.apache.org/solr
  • 41. Incremental index&Facilities of modern engines
  • 42. Utilizes an external instance
  • 43. CompassApplicationPlugin
  • 44. SolrApplicationPlugin
  • 45. Embedding is possible but requires tweaks
  • 46. Setup is fairly simpleRequires some fumbling
  • 47. Solr comes as a bundled installation withthe plugin
  • 48. Application
  • 49. SolrApplicationPlugin
  • 50. ApplicationPluginSolr
  • 51. grails start­solr&grails stop­solr
  • 52. static enableSolrSearch = trueMark a Domain as searchable:
  • 53. static solrAutoIndex = trueAuto-index domain:
  • 54.  def result =                          Domain.searchSolr(query)Search using the domain static API:
  • 55.  def result =                               solrService.search(query)Search using the domain static API:
  • 56. ...But wait a minute
  • 57. -GASP-
  • 58. Can you afford to maintain it?Can you afford to maintain it?http://www.flickr.com/photos/louisa_catlover/
  • 59. Im not dead yet!
  • 60. Using Solr?Using Grails?Contribute!(yay)
  • 61. Elasticsearch PluginElasticsearch Plugin
  • 62. Elasticsearchhttp://www.elasticsearch.org
  • 63. All the benefits of the aforementioned(Incremental, external, actively developed)
  • 64. Setting up for embedded or external is abreeze
  • 65. elasticSearch {    client.mode = local}Embedded:
  • 66. elasticSearch {    client.mode = transport}External (single node):
  • 67. static searchable = trueMark a Domain as searchable:static searchable = {…                }                    Looks familiar?
  • 68. Query closures
  • 69. From the trencheshttp://www.flickr.com/photos/finsam/
  • 70. Not released often
  • 71. Plan ahead. mappings are commitments
  • 72. Keep configurations in line
  • 73. Call to armsHibernateGORMgithub.com/noamt/elasticsearch­gorm­plugin
  • 74. Thanks!Any queries? (HAHAHA!)