e pi server easy search technical overview

19
NetworkedPlanet EasySearch Technical Overview

Upload: guestd9aa5

Post on 19-Nov-2014

1.578 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: E Pi Server Easy Search Technical Overview

NetworkedPlanet

EasySearch

Technical Overview

Page 2: E Pi Server Easy Search 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!

Page 3: E Pi Server Easy Search Technical Overview

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

Page 4: E Pi Server Easy Search Technical Overview

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

Page 5: E Pi Server Easy Search Technical Overview

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

Page 6: E Pi Server Easy Search Technical Overview

Configuration

• Configured within web.config

<indexconfiguration />

<section name="indexconfiguration" type="NetworkedPlanet.EasySearch.Lucene.LuceneSystemConfigurationReader, NetworkedPlanet.EasySearch.Lucene" />

• Index all page types• Joining all string, long string and XHTML properties

Page 7: E Pi Server Easy Search Technical Overview

Configuration 2

• Index specific page types<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>

Page 8: E Pi Server Easy Search Technical Overview

Configuration 3

• Configure storage of specific fields in Lucene<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"> <pagetype Name="Person"> <property Name="description“ IncludeInCommonContent="true“ xsi:type="lucene:LuceneProperty“> <lucene:field Name="description“ FieldStore="NO“ FieldTermVector="NO" FieldIndex="TOKENIZED“ Boost="1.2“ /> </property> <property Name="EPi_PageName“ IncludeInCommonContent="true" /> </pagetype></indexconfiguration>

Page 9: E Pi Server Easy Search Technical Overview

Configuration 4

• Configure the Lucene Index<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:configuration RelativeDirecoryPath="EasySearchLuceneIndex" DocumentPrimaryKey="EPi_PageId" DocumentPrimaryKeyField="easysearch_primarykey" DocumentCommonContentField="easysearch_primarycontent" IndexWriterMaximumFieldLength="25000"></indexconfiguration>

Page 10: E Pi Server Easy Search Technical Overview

EasySearch – Admin Plug-in

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

Page 11: E Pi Server Easy Search Technical Overview

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.

Page 12: E Pi Server Easy Search Technical Overview

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

Page 13: E Pi Server Easy Search Technical Overview

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

Page 14: E Pi Server Easy Search Technical Overview

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

Page 15: E Pi Server Easy Search Technical Overview

EasySearchInputWebPart

• Captures input:– From URL parameters– From HTML form input

• Can apply CSS styles• Hide unwanted fields

Page 16: E Pi Server Easy Search Technical Overview

ESSearchResultsWebPart

• Produces XML• Web part allows customization using XSLT & CSS

<?xml version="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>

Page 17: E Pi Server Easy Search Technical Overview

ESSearchResultsWebPart

• Ships with XSLT for HTML formatted results

Page 18: E Pi Server Easy Search Technical Overview

PagingWebPart

• Plugs in to ESSearchResultsWebPart– Allows paging abilities

• Can apply CSS styles• Hide unwanted fields

Page 19: E Pi Server Easy Search Technical Overview

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