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
– FREE for all non-commercial use
– NOK30,000 for 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
• 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. 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>
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. 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
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&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>
18. PagingWebPart
• Plugs in to ESSearchResultsWebPart
– Allows paging abilities
• Can apply CSS styles
• Hide unwanted fields
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
Hinweis der Redaktion
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”.