Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
NetworkedPlanet

    EasySearch
  Technical Overview
Problem Statement
• Ever seen a website without a full text search?

• BUT
  – Search is expensive
     • Financially
    ...
EasySearch
• Simple
  – Easy to install
     • Via EPiServer Manager
     • Easy to configure
           – Edit XML in web...
Published Source
• Published on EPiCode by BV Network AS
• Bug Tracking
  – If you see a problem, tell us!
• Feature Track...
Improved Indexing
• Page and files are indexed on EPiServer events
  – Not visible until publication
  – Updated when the ...
Configuration
  • Configured within web.config
<section name=quot;indexconfigurationquot;
  type=quot;NetworkedPlanet.Easy...
Configuration 2
   • Index specific page types
<indexonconfiguration
  xmlns=quot;http://www.networkedplanet.com/schema/ea...
Configuration 3
   • Configure storage of specific fields in Lucene
<indexonconfiguration
  xmlns:lucene=quot;http://www.n...
Configuration 4
   • Configure the Lucene Index
<indexonconfiguration
  xmlns:lucene=quot;http://www.networkedplanet.com/s...
EasySearch – Admin Plug-in
• Admin Mode Plug-in
• Index Pages
• Search Site
  – Show entire records
Edit Mode Plug-in
• Coming soon!
• Allows editors to see how their page will be
  indexed.
• Run sample searches to find w...
Developer’s API
• EasySearch Generic API
  – Simple Search API using back-end query parser
  – Lucene back-end supports:
 ...
Event Pipeline
• Developers can customize indexing process.

• Indexing process is pluggable:
  – Intercept indexing of a ...
Provided Web Parts
• EasySearch comes with 3 ASP.NET Web Parts
   – EasySearchInputWebPart
   – ESSearchResultsWebPart
   ...
EasySearchInputWebPart
• Captures input:
  – From URL parameters
  – From HTML form input



• Can apply CSS styles
• Hide...
ESSearchResultsWebPart
• Produces XML
• Web part allows customization using XSLT & CSS
    <?xml version=quot;1.0quot; enc...
ESSearchResultsWebPart
• Ships with XSLT for HTML formatted results
PagingWebPart
• Plugs in to ESSearchResultsWebPart
  – Allows paging abilities




• Can apply CSS styles
• Hide unwanted ...
EasySearch Roadmap
•   Internationalization Support – DONE!
•   Security Support - DONE!
•   Integration with EPiServer Mo...
Upcoming SlideShare
Loading in …5
×

E Pi Server Easy Search Technical Overview

1,053 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

E Pi Server Easy Search Technical Overview

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

×