E pi servereasysearchtechnicaloverview


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • This presentation provides a technical overview of EasySearch product from Networked Planet
  • These are the standard problems associated with search.How many times have you heard people use 6 figures to describe the amount of money spent on just their search…. … and then it still didn’t give you the search results you expected it to.
  • EasySearch is a name we’re really happy with, it combined the two most important things we wanted to achieve. The “Search” is obvious, however what we really wanted was “Easy”.
  • E pi servereasysearchtechnicaloverview

    1. 1. EasySearch<br />Technical Overview<br />
    2. 2. Problem Statement<br />Ever seen a website without a full text search?<br />BUT<br />Search is expensive<br />Financially<br />Computationally<br />Search is complicated<br />But it doesn’t need to be!<br />
    3. 3. EasySearch<br />Simple<br />Easy to install<br />Via EPiServer Manager<br />Easy to configure<br />Edit XML in web.config<br />Extremely flexible configuration model<br />Combine and transform individual page properties<br />Full IntelliSense support inside Visual Studio<br />Inexpensive<br />FREEfor all non-commercial use<br />NOK30,000for commercial deployment (approx. £3,000)<br />Enterprise license pricing available on request<br />
    4. 4. Published Source<br />Published on EPiCode by BV Network AS<br />Bug Tracking<br />If you see a problem, tell us!<br />Feature Tracking<br />If you want a feature, tell us!<br />Wiki<br />Fostering a user community<br />
    5. 5. Improved Indexing<br />Page and files are indexed on EPiServer events<br />Not visible until publication<br />Updated when the page or files are<br />Removed on page or file delete<br />No site crawlers<br />Produces unreliable search anyway<br />Much more efficient<br />Pages show up in search results immediately after publication<br />
    6. 6. Configuration<br />Configured within web.config<br /><section name="indexconfiguration" <br /> type="NetworkedPlanet.EasySearch.Lucene.LuceneSystemConfigurationReader, <br />NetworkedPlanet.EasySearch.Lucene" /><br /><ul><li>Index all page types
    7. 7. Joining all string, long string and XHTML properties</li></ul><indexconfiguration/> <br />
    8. 8. Configuration 2<br />Index specific page types<br /><indexonconfiguration<br />xmlns="http://www.networkedplanet.com/schema/easysearch/configuration"<br />xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />><br /> <pagetype name=“person” /><br /> <pagetype name=“skill” /><br /> <pagetype name=“article” /><br /></indexconfiguration><br /><ul><li>Index specific properties on a page type</li></ul><indexonconfiguration<br />xmlns="http://www.networkedplanet.com/schema/easysearch/configuration"<br />xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />><br /> <pagetype name=“person”><br /> <property name=“description”/><br /> <property name=“EPi_PageName”/><br /> </pagetype><br /></indexconfiguration><br />
    9. 9. Configuration 3<br />Configure storage of specific fields in Lucene<br /><indexonconfiguration<br />xmlns:lucene="http://www.networkedplanet.com/schema/easysearch/configuration/lucene"<br />xmlns="http://www.networkedplanet.com/schema/easysearch/configuration"<br />xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />xsi:type="lucene:LuceneIndexConfiguration"><br /> <pagetypeName="Person"><br /> <property Name="description“<br />IncludeInCommonContent="true“ <br />xsi:type="lucene:LuceneProperty“><br /> <lucene:fieldName="description“<br />FieldStore="NO“<br />FieldTermVector="NO" <br />FieldIndex="TOKENIZED“<br /> Boost="1.2“ /><br /> </property><br /> <property Name="EPi_PageName“<br />IncludeInCommonContent="true" /><br /> </pagetype><br /></indexconfiguration><br />
    10. 10. Configuration 4<br />Configure the Lucene Index<br /><indexonconfiguration<br />xmlns:lucene="http://www.networkedplanet.com/schema/easysearch/configuration/lucene"<br />xmlns="http://www.networkedplanet.com/schema/easysearch/configuration"<br />xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />xsi:type="lucene:LuceneIndexConfiguration"><br /> <lucene:configurationRelativeDirecoryPath="EasySearchLuceneIndex"<br />DocumentPrimaryKey="EPi_PageId"<br />DocumentPrimaryKeyField="easysearch_primarykey"<br />DocumentCommonContentField="easysearch_primarycontent"<br />IndexWriterMaximumFieldLength="25000"><br /></indexconfiguration><br />
    11. 11. EasySearch – Admin Plug-in<br />Admin Mode Plug-in<br />Index Pages<br />Search Site<br />Show entire records<br />
    12. 12. Edit Mode Plug-in<br />Coming soon!<br />Allows editors to see how their page will be indexed.<br />Run sample searches to find whether page will be found after publication.<br />Can be used to prevent/force indexing.<br />Allows forced customizations to be made to the search record.<br />Forces re-indexing of last published.<br />
    13. 13. Developer’s API<br />EasySearch Generic API<br />Simple Search API using back-end query parser<br />Lucene back-end supports:<br />Wildcards, Fuzzy Terms, Range Searches, Boosting, Boolean operators, Escaping<br />Lucene Specific API<br />Provides direct access to the Lucene Query API<br />Ultimately flexible<br />
    14. 14. Event Pipeline<br />Developers can customize indexing process.<br />Indexing process is pluggable:<br />Intercept indexing of a document for modification<br />Provide .NET code handlers in for modifying or creating new indexed fields<br />
    15. 15. Provided Web Parts<br />EasySearch comes with 3 ASP.NET Web Parts<br />EasySearchInputWebPart<br />ESSearchResultsWebPart<br />PagingWebPart<br />All open source <br />Tailor to your specific site<br />OR use out of the box<br />All connections are interface-based<br />Allows easily replacement of individual parts<br />Supplied demo page shows them working together<br />
    16. 16. EasySearchInputWebPart<br />Captures input:<br />From URL parameters<br />From HTML form input<br /><ul><li>Can apply CSS styles
    17. 17. Hide unwanted fields</li></li></ul><li>ESSearchResultsWebPart<br />Produces XML<br />Web part allows customization using XSLT & CSS<br /><?xmlversion="1.0" encoding="utf-8" ?><br /><SearchResults><br /> <SearchResult><br /> <index>3</index><br /> <pageid>2334</pageid><br /> <assettype>page</assettype><br /> <linkurl> /EPiServer1/NetworkedPlanet/EPiServerModuleDemo/Templates/PersonTemplate.aspx?id=2334&amp;epslanguage=en</linkurl><br /> <title>Terry Walker</title><br /> <pagetypename>Person</pagetypename><br /> <pagetypeid>6</pagetypeid><br /> <preview>The rabbit-hole went straight on like a tunnel for some way, and then dipped suddenly down, so suddenly that Alice had not a moment to think about stopping herself before she found herself falling down a very deep well.</preview><br /> <publicationdate>11 Nov 08 02:52</publicationdate><br /> </SearchResult><br /></SearchResults><br />
    18. 18. ESSearchResultsWebPart<br />Ships with XSLT for HTML formatted results<br />
    19. 19. PagingWebPart<br />Plugs in to ESSearchResultsWebPart<br />Allows paging abilities<br /><ul><li>Can apply CSS styles
    20. 20. Hide unwanted fields</li></li></ul><li>EasySearch Roadmap<br />Internationalization Support – DONE!<br />Security Support - DONE!<br />Integration with EPiServer Module - DONE!<br />Indexing of content in UFS - DONE!<br />Generic Search Results custom control - DONE!<br />Pluggable Search Pipeline - DONE!<br />Federated search via OpenSearch - In Progress<br />Support for multiple EPiServer servers - In Progress<br />Editor plug-in - In Progress<br />Synonym Search<br />Search Statistics<br />What people wanted and didn’t find<br />Common search terms tracking<br />