113
Solr integration April 20, 2012 Ard Schrijvers • [email protected] / [email protected]

Hippo get together presentation solr integration

  • Upload
    hippo

  • View
    107

  • Download
    0

Embed Size (px)

DESCRIPTION

By Ard Schrijvers

Citation preview

Page 1: Hippo get together presentation   solr integration

Solr integration

April 20, 2012Ard Schrijvers • [email protected] / [email protected]

Page 2: Hippo get together presentation   solr integration

1. Working at Hippo since 20012. Email: [email protected]

[email protected] 3. Worked primarily on:

1. HST 2. Hippo Repository / Jackrabbit3. Lucene 4. Cocoon 5. Slide

4. Apache committer of Jackrabbit and Cocoon

About me:Ard Schrijvers

Page 3: Hippo get together presentation   solr integration

Outline

1. The current search (HST / repo) architecture

Page 4: Hippo get together presentation   solr integration

Outline

1. The current search (HST / repo) architecture 2. The current problems / shortcomings / mismatches

Page 5: Hippo get together presentation   solr integration

Outline

1. The current search (HST / repo) architecture 2. The current problems / shortcomings / mismatches3. What we are trying to improve, the objectives

Page 6: Hippo get together presentation   solr integration

Outline

1. The current search (HST / repo) architecture 2. The current problems / shortcomings / mismatches3. What we are trying to improve, the objectives 4. Solr integration to rescue

Page 7: Hippo get together presentation   solr integration

Outline

1. The current search (HST / repo) architecture 2. The current problems / shortcomings / mismatches3. What we are trying to improve, the objectives 4. Solr integration to rescue5. A very fast demo

Page 8: Hippo get together presentation   solr integration

Outline

1. The current search (HST / repo) architecture 2. The current problems / shortcomings / mismatches3. What we are trying to improve, the objectives 4. Solr integration to rescue5. A very fast demo6. Wrap up

Page 9: Hippo get together presentation   solr integration

Outline

1. The current search (HST / repo) architecture 2. The current problems / shortcomings / mismatches3. What we are trying to improve, the objectives 4. Solr integration to rescue5. A very fast demo6. Wrap up 7. Questions

Page 10: Hippo get together presentation   solr integration

Current search architecture

Page 11: Hippo get together presentation   solr integration

Current search architecture

SoAn HSTQuery

is translated to anXPath query

Which is delegated to the repository that returns aJCR NodeIterator

which the HST binds back toHippoBean's

Page 12: Hippo get together presentation   solr integration

Current search architecture

That sounds doable and not to complex

is it?

Page 13: Hippo get together presentation   solr integration

Current search architecture

Well, it is .......

Page 14: Hippo get together presentation   solr integration

Current search architecture

Well, it is ....... very complex

Page 15: Hippo get together presentation   solr integration

Current search architecture

Reasons:

1. Back in the days when Jackrabbit 1 started, Lucene was at version 1.4

Page 16: Hippo get together presentation   solr integration

Current search architecture

Reasons:

1. Back in the days when Jackrabbit 1 started, Lucene was at version 1.4

2. The first JSR-170 spec imposed some very harsh constraints : A save must result in directly updated search results

Page 17: Hippo get together presentation   solr integration

Current search architecture

Reasons:

1. Back in the days when Jackrabbit 1 started, Lucene was at version 1.4

2. The first JSR-170 spec imposed some very harsh constraints : A save must result in directly updated search results

3. Support for XPath / SQL was needed. However, Lucene likes flattened data, JCR with XPath / SQL is all about hierarchical data

Page 18: Hippo get together presentation   solr integration

Current search architecture

Reasons:

1. Back in the days when Jackrabbit 1 started, Lucene was at version 1.4

2. The first JSR-170 spec imposed some very harsh constraints : A save must result in directly updated search results

3. Support for XPath / SQL was needed. However, Lucene likes flattened data, JCR with XPath / SQL is all about hierarchical data

4. JCR Nodes != Documents

Page 19: Hippo get together presentation   solr integration

Outline

1. The current search (HST / repo) architecture 2. The current problems / shortcomings / mismatches3. What we are trying to improve, the objectives 4. Solr integration to rescue5. A short HOWTO as developer 6. A very fast demo7. Wrap up 8. Questions

Page 20: Hippo get together presentation   solr integration

Current problems / shortcomings / mismatches

1. JCR Nodes are indexed instead of Documents (#nodes >> #documents)

Page 21: Hippo get together presentation   solr integration

Current problems / shortcomings / mismatches

1. JCR Nodes are indexed instead of Documents (#nodes >> #documents)

2. A search result only returns Nodes (Rows) : what if you want something else, like auto-completion

Page 22: Hippo get together presentation   solr integration

Current problems / shortcomings / mismatches

1. JCR Nodes are indexed instead of Documents (#nodes >> #documents)

2. A search result only returns Nodes (Rows) : what if you want something else, like auto-completion

3. Very hard and very limited to customize

Page 23: Hippo get together presentation   solr integration

Current problems / shortcomings / mismatches

1. JCR Nodes are indexed instead of Documents (#nodes >> #documents)

2. A search result only returns Nodes (Rows) : what if you want something else, like auto-completion

3. Very hard and very limited to customize4. A single index for an entire workspace

Page 24: Hippo get together presentation   solr integration

Current problems / shortcomings / mismatches

1. JCR Nodes are indexed instead of Documents (#nodes >> #documents)

2. A search result only returns Nodes (Rows) : what if you want something else, like auto-completion

3. Very hard and very limited to customize4. A single index for an entire workspace5. Support for very complex XPath / SQL queries at a price

of CPU, Memory and complexity

Page 25: Hippo get together presentation   solr integration

Current problems / shortcomings / mismatches

1. JCR Nodes are indexed instead of Documents (#nodes >> #documents)

2. A search result only returns Nodes (Rows) : what if you want something else, like auto-completion

3. Very hard and very limited to customize4. A single index for an entire workspace5. Support for very complex XPath / SQL queries at a price

of CPU, Memory and complexity6. Only JCR Nodes and properties are indexed : no 'derived'

field indexes

Page 26: Hippo get together presentation   solr integration

Current problems / shortcomings / mismatches

1. JCR Nodes are indexed instead of Documents (#nodes >> #documents)

2. A search result only returns Nodes (Rows) : what if you want something else, like auto-completion

3. Very hard and very limited to customize4. A single index for an entire workspace5. Support for very complex XPath / SQL queries at a price

of CPU, Memory and complexity6. Only JCR Nodes and properties are indexed : no 'derived'

field indexes7. To index external sources, the sources need to be stored in

the repository

Page 27: Hippo get together presentation   solr integration

Current problems / shortcomings / mismatches

1. JCR Nodes are indexed instead of Documents (#nodes >> #documents)

2. A search result only returns Nodes (Rows) : what if you want something else, like auto-completion

3. Very hard and very limited to customize4. A single index for an entire workspace5. Support for very complex XPath / SQL queries at a price

of CPU, Memory and complexity6. Only JCR Nodes and properties are indexed : no 'derived'

field indexes7. To index external sources, the sources need to be stored in

the repository8. Range queries (and others) easily blow up

Page 28: Hippo get together presentation   solr integration

Current problems / shortcomings / mismatches

1. JCR Nodes are indexed instead of Documents (#nodes >> #documents)

2. A search result only returns Nodes (Rows) : what if you want something else, like auto-completion

3. Very hard and very limited to customize4. A single index for an entire workspace5. Support for very complex XPath / SQL queries at a price

of CPU, Memory and complexity6. Only JCR Nodes and properties are indexed : no 'derived'

field indexes7. To index external sources, the sources need to be stored in

the repository8. Range queries (and others) easily blow up9. Getting the number of hits is complex

Page 29: Hippo get together presentation   solr integration

Current problems / shortcomings / mismatches

Extra problem

JCR Nodes !=

Documents

For example : A news document contains a link to an author document : Through the author name, the news document should be found

Page 30: Hippo get together presentation   solr integration

Outline

1. The current search (HST / repo) architecture 2. The current problems / shortcomings / mismatches3. What we are trying to improve, the objectives 4. Solr integration to rescue5. A very fast demo6. Wrap up 7. Questions

Page 31: Hippo get together presentation   solr integration

Objectives

1. Fix all the 9+ problems / shortcomings/ mismatches from previous slides

2. Easy to use and customize3. Satisfied customers4. Satisfied partners5. Scalable searches : CPU, memory and large document

numbers6. Document oriented 7. Integration with HST ContentBeans (HippoBeans)8. Index external sources 9. Control the SIZE of the index yourself

10. Don't invent but integrate ( with out-of-the-box features supported by a large community)

Page 32: Hippo get together presentation   solr integration

Objective: Fix all the 9 problems / shortcomings/ mismatches from

previous slides

Page 33: Hippo get together presentation   solr integration

Objective: Fix all the 9 problems / shortcomings/ mismatches from

previous slidesEasy:

Solr integration to rescue

Page 34: Hippo get together presentation   solr integration

Objective: Easy to use and customize

Page 35: Hippo get together presentation   solr integration

Objective: Easy to use and customize

YOU will be in the driver seat

Page 36: Hippo get together presentation   solr integration

Objective: Easy to use and customize

Page 37: Hippo get together presentation   solr integration

Objective: Easy to use and customize

Page 38: Hippo get together presentation   solr integration

Objective: Easy to use and customize

No more complete dependence on what the sometimes not so smAR&D Hippo team thought was good for YOU

Page 39: Hippo get together presentation   solr integration

Objective : Easy to use and customize

Page 40: Hippo get together presentation   solr integration

Objective: Easy to use and customize

You decide 'from where', 'what', 'how' and 'when' to index

Page 41: Hippo get together presentation   solr integration

Objective: Easy to use and customize

You decide 'from where', 'what', 'how' and 'when' to index 1. from where: which sources (jcr, webpages, database,

noSQL store, nuxeo, alfresco, anything)

Page 42: Hippo get together presentation   solr integration

Objective: Easy to use and customize

You decide 'from where', 'what', 'how' and 'when' to index 1. from where: which sources (jcr, webpages, database,

noSQL store, nuxeo, alfresco, anything)2. what : which parts of a document (not jcr node) or external

source

Page 43: Hippo get together presentation   solr integration

Objective: Easy to use and customize

You decide 'from where', 'what', 'how' and 'when' to index 1. from where: which sources (jcr, webpages, database,

noSQL store, nuxeo, alfresco, anything)2. what : which parts of a document (not jcr node) or external

source3. how :

1. which analyzer, 2. index on document level, property level or both3. store the text

Page 44: Hippo get together presentation   solr integration

Objective: Easy to use and customize

You decide 'from where', 'what', 'how' and 'when' to index 1. from where: which sources (jcr, webpages, database,

noSQL store, nuxeo, alfresco, anything)2. what : which parts of a document (not jcr node) or external

source3. how :

1. which analyzer, 2. index on document level, property level or both3. store the text

4. when : when do you want to index

Page 45: Hippo get together presentation   solr integration

Objective: Easy to use and customize

But of course, out-of-the-box support and toolingready to be used by YOU

Page 46: Hippo get together presentation   solr integration

Objective: Easy to use and customize

But of course, out-of-the-box support and toolingready to be used by YOU

1. Default hippo repository indexer & observer

Page 47: Hippo get together presentation   solr integration

Objective: Easy to use and customize

But of course, out-of-the-box support and toolingready to be used by YOU

1. Default hippo repository indexer & observer2. ContentBean (HippoBean) annotations for indexing

Page 48: Hippo get together presentation   solr integration

Objective: Easy to use and customize

But of course, out-of-the-box support and toolingready to be used by YOU

1. Default hippo repository indexer & observer2. ContentBean (HippoBean) annotations for indexing3. Binding search results to ContentBean's

Page 49: Hippo get together presentation   solr integration

Objective: Easy to use and customize

But of course, out-of-the-box support and toolingready to be used by YOU

1. Default hippo repository indexer & observer2. ContentBean (HippoBean) annotations for indexing3. Binding search results to ContentBean's4. Deployment support

Page 50: Hippo get together presentation   solr integration

Objective: Easy to use and customize

But of course, out-of-the-box support and toolingready to be used by YOU

1. Default hippo repository indexer & observer2. ContentBean (HippoBean) annotations for indexing3. Binding search results to ContentBean's4. Deployment support 5. Clustering support

Page 51: Hippo get together presentation   solr integration

Objective: Satisfied customers

Page 52: Hippo get together presentation   solr integration

Objective: Satisfied customers

HOW?

Page 53: Hippo get together presentation   solr integration

Objective: Satisfied customers

EASY

Page 54: Hippo get together presentation   solr integration

Objective: Satisfied customers

Most likely they just will be satisfied

Page 55: Hippo get together presentation   solr integration

Objective: Satisfied customers

If they are not satisfied enough you can:

1. Easily customize it (aka tune it until 'je een ons weegt')2. Hire anyone with Solr experience : All our partners have

Solr experience

Page 56: Hippo get together presentation   solr integration

Objective: Satisfied customers

Still not satisfied?

Let them pay too much for a Google Search appliance, Autonomy or any of the other 'useless to pay for software'

Page 57: Hippo get together presentation   solr integration

Objective: Satisfied partners

Page 58: Hippo get together presentation   solr integration

Objective: Satisfied partners

Although on thin ice here, I strongly believe in this because:

Page 59: Hippo get together presentation   solr integration

Objective: Satisfied partners

1. Our partners frequently have good knowledge about Solr

Page 60: Hippo get together presentation   solr integration

Objective: Satisfied partners

1. Our partners frequently have good knowledge about Solr2. Our partners depend less on the current search limitations

Page 61: Hippo get together presentation   solr integration

Objective: Satisfied partners

1. Our partners frequently have good knowledge about Solr2. Our partners depend less on the current search limitations3. Our partners can pitch with their Solr knowledge

Page 62: Hippo get together presentation   solr integration

Objective: Satisfied partners

1. Our partners frequently have good knowledge about Solr2. Our partners depend less on the current search limitations3. Our partners can pitch with their Solr knowledge4. Our partners can sell more Hippo implementations

Page 63: Hippo get together presentation   solr integration

Objective: Satisfied partners

1. Our partners frequently have good knowledge about Solr2. Our partners depend less on the current search limitations3. Our partners can pitch with their Solr knowledge4. Our partners can sell more Hippo implementations5. Our partners will earn more on Hippo and have happier

developers

Page 64: Hippo get together presentation   solr integration

Objective: Satisfied partners

1. Our partners frequently have good knowledge about Solr2. Our partners depend less on the current search limitations3. Our partners can pitch with their Solr knowledge4. Our partners can sell more Hippo implementations5. Our partners will earn more on Hippo and have happier

developers6. Hippo will earn more through HES: Which will satisfy

partners again, because Hippo can spend more on AR&D ==> more features

Page 65: Hippo get together presentation   solr integration

Objective: Scalable searches

Page 66: Hippo get together presentation   solr integration

Objective: Scalable searches

1. Using Solr to do the searches

Page 67: Hippo get together presentation   solr integration

Objective: Scalable searches

1. Using Solr to do the searches 2. Not the complex JCR hierarchical searches

Page 68: Hippo get together presentation   solr integration

Objective: Scalable searches

1. Using Solr to do the searches 2. Not the complex JCR hierarchical searches3. Document oriented instead of JCR Nodes ( #docs <<

#nodes)

Page 69: Hippo get together presentation   solr integration

Objective: Document oriented

Page 70: Hippo get together presentation   solr integration

Objective: Document oriented

What do we want to search for?

Page 71: Hippo get together presentation   solr integration

Objective: Document oriented

Exactly,

Documents!!

Page 72: Hippo get together presentation   solr integration

Objective: Document oriented

A Document ==

A HippoBean !=

JCR Node

Page 73: Hippo get together presentation   solr integration

Objective: Document oriented

So let's index

Page 74: Hippo get together presentation   solr integration

Objective: Document oriented

So let's index

HippoBeans(ContentBeans)

Page 75: Hippo get together presentation   solr integration

Objective: Integration with ContentBeans (HippoBeans)

Page 76: Hippo get together presentation   solr integration

Objective: Integration with ContentBeans (HippoBeans)

As a developer ....

how am I going to index my beans?

Page 77: Hippo get together presentation   solr integration

Objective: Integration with ContentBeans (HippoBeans)

I know how to write HippoBeans, that all I ever did in my life

Page 78: Hippo get together presentation   solr integration

Objective: Integration with ContentBeans (HippoBeans)

How do you expect me to index my beans?

Page 79: Hippo get together presentation   solr integration

Objective: Integration with ContentBeans (HippoBeans)

Annotate your getters with

@IndexField or

@IndexField(name="foo")

And account for them in Solr schema.xml <field name="title" type="text_general" indexed="true" stored="true" /> <field name="summary" type="text_general" indexed="true" stored="true"/>

Page 80: Hippo get together presentation   solr integration

Objective: Integration with ContentBeans (HippoBeans)

An example: @Node(jcrType="demosite:textdocument")public class TextBean extends BaseDocument { @IndexField public String getTitle() { return getProperty("demosite:title") ; } @IndexField(name="samenvatting") public String getSummary() { return getProperty("demosite:summary") ; }}

Page 81: Hippo get together presentation   solr integration

Objective: Integration with ContentBeans (HippoBeans)

Another example: @Node(jcrType="demosite:textdocument")public class TextBean extends BaseDocument { @IndexField public String getTitle() { return getProperty("demosite:title") ; } @IndexField public String getSummary() { return getProperty("demosite:summary") ; } @IndexField public String getAuthor() { return getLinkedBean("demosite:author", Author.class).getAuthor(); }}

Page 82: Hippo get together presentation   solr integration

Objective: Integration with ContentBeans (HippoBeans)

Another example: @Node(jcrType="demosite:textdocument")public class TextBean extends BaseDocument { @IndexField public String getTitle() { return getProperty("demosite:title") ; } @IndexField public String getSummary() { return getProperty("demosite:summary") ; } @ReIndexOnChange @IndexField public Author getAuthor() { return getLinkedBean("demosite:author", Author.class); }}

Page 83: Hippo get together presentation   solr integration

Objective: Integration with ContentBeans (HippoBeans)

Another example: Setters@Node(jcrType="demosite:textdocument")public class TextBean extends BaseDocument { private String title; private String summary; @IndexField public String getTitle() { return title == null ? getProperty("demosite:title"): title ; } public void setTitle(String title) { this.title = title; } @IndexField public String getSummary() { return summary == null ? getProperty("demosite:summary"): summary ; } public void setSummary(String summary) { this.summary = summary; }}

Bonus : What can we achieve with the Setters?

Page 84: Hippo get together presentation   solr integration

Objective: Integration with ContentBeans (HippoBeans)

That's all you need to do And the HST binds some extra indexing fields like 1. The path2. The canonicalUUID3. The name4. The localized name5. The depth 6. The class hierarchy (including interfaces)

Page 85: Hippo get together presentation   solr integration

Objective: Index external sources

Page 86: Hippo get together presentation   solr integration

Objective: Index external sources

You can

1. Push them directly to Solr

Page 87: Hippo get together presentation   solr integration

Objective: Index external sources

You can

1. Push them directly to Solr2. Push them to a HST JAX-RS resource that binds to a

ContentBean and commits to Solr

Page 88: Hippo get together presentation   solr integration

Objective: Index external sources

You can

1. Push them directly to Solr2. Push them to a HST JAX-RS resource that binds to a

ContentBean and commits to Solr3. Crawl from the HST and bind to ContentBeans and commit

them to Solr

Page 89: Hippo get together presentation   solr integration

Objective: Index external sources

A ContentBean does *not* need a JCR Node!

ContentBean interface:

public interface ContentBean { @IndexField(name="id") String getPath(); void setPath(String path);}

Page 90: Hippo get together presentation   solr integration

Objective: Index external sources

An example : GoGreenProductBean in Testsuite

public class GoGreenProductBean implements ContentBean { private String path;

private String title;

private String summary;

private String description;

public String getPath() {return path;}

public void setPath(final String path) {this.path = path;}

@IndexField public String getTitle() {return title;}

public void setTitle(String title) {this.title = title;}

@IndexField

public String getSummary() {return summary ;}

public void setSummary(String summary) {this.summary = summary;}

@IndexField

public String getDescription() {return description;}

public void setDescription(String description) {this.description = description;}}

Page 91: Hippo get together presentation   solr integration

Objective: Index external sources

And add the GoGreenProductBean to Solr

{

List<GoGreenProductBean> gogreenBeans = new ArrayList<GoGreenProductBean>(); // FILL THE gogreenBeans LIST

// NOW ADD TO INDEX HippoSolrManager solrManager = HstServices.getComponentManager().getComponent( HippoSolrManager.class.getName(), SOLR_MODULE_NAME); try { solrManager.getSolrServer().addBeans(gogreenBeans); UpdateResponse commit = solrManager.getSolrServer().commit(); } catch (IOException e) { e.printStackTrace(); } catch (SolrServerException e) { e.printStackTrace(); }}

Page 92: Hippo get together presentation   solr integration

Objective: Control the SIZE of the index yourself

Page 93: Hippo get together presentation   solr integration

Objective: Control the SIZE of the index yourself

JCR / Jackrabbit / Hippo-Repository has a generic

one-fits-all-index (or one-fits-none-index)

Which grows very large easily, and can hardly be customized

Page 94: Hippo get together presentation   solr integration

Objective: Control the SIZE of the index yourself

However, search is

domain specific

Thus,

Just index what is needed for the customer

Page 95: Hippo get together presentation   solr integration

Objective: Don't invent but integrate

Page 96: Hippo get together presentation   solr integration

Objective: Don't invent but integrate

Use Solr

Use Solrj client

Expose the Solrj SolrQuery

Page 97: Hippo get together presentation   solr integration

Objective: Don't invent but integrate

For example:HippoSolrManager solrManager = ...String query = ...HippoQuery hippoQuery = solrManager.createQuery(query); hippoQuery.setLimit(pageSize); hippoQuery.setOffset((page - 1) * pageSize); // hippoQuery.getSolrQuery() is the SolrQuery object // include scoring

hippoQuery.getSolrQuery().setIncludeScore(true);hippoQuery.getSolrQuery().setHighlight(true); hippoQuery.getSolrQuery().setHighlightFragsize(200); hippoQuery.getSolrQuery().addHighlightField("title"); hippoQuery.getSolrQuery().addHighlightField("summary"); hippoQuery.getSolrQuery().addHighlightField("htmlContent"); HippoQueryResult result = hippoQuery.execute(true);

Page 98: Hippo get together presentation   solr integration

Objective: Don't invent but integrate

For example:HippoSolrManager solrManager = ...String query = ...HippoQuery hippoQuery = solrManager.createQuery(query); hippoQuery.setLimit(pageSize); hippoQuery.setOffset((page - 1) * pageSize); // hippoQuery.getSolrQuery() is the SolrQuery object // include scoring

hippoQuery.getSolrQuery().setIncludeScore(true);hippoQuery.getSolrQuery().setHighlight(true); hippoQuery.getSolrQuery().setHighlightFragsize(200); hippoQuery.getSolrQuery().addHighlightField("title"); hippoQuery.getSolrQuery().addHighlightField("summary"); hippoQuery.getSolrQuery().addHighlightField("htmlContent"); HippoQueryResult result = hippoQuery.execute(true);

Page 99: Hippo get together presentation   solr integration

Outline

1. The current search (HST / repo) architecture 2. The current problems / shortcomings / mismatches3. What we are trying to improve, the objectives 4. Solr integration to rescue5. A very fast demo6. Wrap up 7. Questions

Page 100: Hippo get together presentation   solr integration

Solr integration to rescue

No further comments :-)

Page 101: Hippo get together presentation   solr integration

Outline

1. The current search (HST / repo) architecture 2. The current problems / shortcomings / mismatches3. What we are trying to improve, the objectives 4. Solr integration to rescue5. A very fast demo6. Wrap up 7. Questions

Page 102: Hippo get together presentation   solr integration

A very fast demo

setup ~75.000 long wikipedia docs in repository

............... doing the demo .................

Page 103: Hippo get together presentation   solr integration

That was : a very fast demo

Page 104: Hippo get together presentation   solr integration

Outline

1. The current search (HST / repo) architecture 2. The current problems / shortcomings / mismatches3. What we are trying to improve, the objectives 4. Solr integration to rescue5. A very fast demo6. Wrap up 7. Questions

Page 105: Hippo get together presentation   solr integration

Wrap up

I think that with the Solr integration

Page 106: Hippo get together presentation   solr integration

Wrap up

I think that with the Solr integration 1. Developers will be happier

Page 107: Hippo get together presentation   solr integration

Wrap up

I think that with the Solr integration 1. Developers will be happier2. Customers will be happier

Page 108: Hippo get together presentation   solr integration

Wrap up

I think that with the Solr integration 1. Developers will be happier2. Customers will be happier 3. Partners will be happier

Page 109: Hippo get together presentation   solr integration

Wrap up

I think that with the Solr integration 1. Developers will be happier2. Customers will be happier 3. Partners will be happier4. Hippo will be happier

Page 110: Hippo get together presentation   solr integration

Wrap up

I think that with the Solr integration 1. Developers will be happier2. Customers will be happier 3. Partners will be happier4. Hippo will be happier

And finally, last and least

Page 111: Hippo get together presentation   solr integration

Wrap up

I think that with the Solr integration 1. Developers will be happier2. Customers will be happier 3. Partners will be happier4. Hippo will be happier5. Infra will be happier because the servers stop sweating

Page 112: Hippo get together presentation   solr integration

Outline

1. The current search (HST / repo) architecture 2. The current problems / shortcomings / mismatches3. What we are trying to improve, the objectives 4. Solr integration to rescue5. A very fast demo6. Wrap up 7. Questions

Page 113: Hippo get together presentation   solr integration

Questions?

Check out the example at :http://svn.onehippo.org/repos/hippo/hippo-cms7/testsuite/trunk