1 / 19

EasySearch

EasySearch. Technical Overview. 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!. EasySearch. Simple Easy to install Via EPiServer Manager Easy to configure

coen
Download Presentation

EasySearch

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EasySearch Technical Overview

  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. 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 • FREEfor all non-commercial use • NOK30,000for commercial deployment (approx. £3,000) • Enterprise license pricing available on request

  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. 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. Configuration <section name="indexconfiguration" type="NetworkedPlanet.EasySearch.Lucene.LuceneSystemConfigurationReader, NetworkedPlanet.EasySearch.Lucene" /> • Index all page types • Joining all string, long string and XHTML properties <indexconfiguration/> Configured within web.config

  7. Configuration 2 <indexonconfiguration xmlns="http://www.networkedplanet.com/schema/easysearch/configuration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <pagetype name=“person” /> <pagetype name=“skill” /> <pagetype name=“article” /> </indexconfiguration> • Index specific properties on a page type <indexonconfiguration xmlns="http://www.networkedplanet.com/schema/easysearch/configuration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <pagetype name=“person”> <property name=“description”/> <property name=“EPi_PageName”/> </pagetype> </indexconfiguration> Index specific page types

  8. Configuration 3 <indexonconfiguration xmlns:lucene="http://www.networkedplanet.com/schema/easysearch/configuration/lucene" xmlns="http://www.networkedplanet.com/schema/easysearch/configuration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="lucene:LuceneIndexConfiguration"> <pagetypeName="Person"> <property Name="description“ IncludeInCommonContent="true“ xsi:type="lucene:LuceneProperty“> <lucene:fieldName="description“ FieldStore="NO“ FieldTermVector="NO" FieldIndex="TOKENIZED“ Boost="1.2“ /> </property> <property Name="EPi_PageName“ IncludeInCommonContent="true" /> </pagetype> </indexconfiguration> Configure storage of specific fields in Lucene

  9. Configuration 4 <indexonconfiguration xmlns:lucene="http://www.networkedplanet.com/schema/easysearch/configuration/lucene" xmlns="http://www.networkedplanet.com/schema/easysearch/configuration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="lucene:LuceneIndexConfiguration"> <lucene:configurationRelativeDirecoryPath="EasySearchLuceneIndex" DocumentPrimaryKey="EPi_PageId" DocumentPrimaryKeyField="easysearch_primarykey" DocumentCommonContentField="easysearch_primarycontent" IndexWriterMaximumFieldLength="25000"> </indexconfiguration> Configure the Lucene Index

  10. EasySearch – Admin Plug-in • Admin Mode Plug-in • Index Pages • Search Site • Show entire records

  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. 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. 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. 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. EasySearchInputWebPart • Can apply CSS styles • Hide unwanted fields • Captures input: • From URL parameters • From HTML form input

  16. ESSearchResultsWebPart • Produces XML • Web part allows customization using XSLT & CSS <?xmlversion="1.0" encoding="utf-8" ?> <SearchResults> <SearchResult> <index>3</index> <pageid>2334</pageid> <assettype>page</assettype> <linkurl> /EPiServer1/NetworkedPlanet/EPiServerModuleDemo/Templates/PersonTemplate.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. ESSearchResultsWebPart • Ships with XSLT for HTML formatted results

  18. PagingWebPart • Can apply CSS styles • Hide unwanted fields • Plugs in to ESSearchResultsWebPart • Allows paging abilities

  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

More Related