e pi server easy search technical overview
DESCRIPTION
TRANSCRIPT
![Page 1: E Pi Server Easy Search Technical Overview](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/1.jpg)
NetworkedPlanet
EasySearch
Technical Overview
![Page 2: E Pi Server Easy Search Technical Overview](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/10.jpg)
EasySearch – Admin Plug-in
• Admin Mode Plug-in• Index Pages• Search Site– Show entire records
![Page 11: E Pi Server Easy Search Technical Overview](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/16.jpg)
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&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](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/17.jpg)
ESSearchResultsWebPart
• Ships with XSLT for HTML formatted results
![Page 18: E Pi Server Easy Search Technical Overview](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/18.jpg)
PagingWebPart
• Plugs in to ESSearchResultsWebPart– Allows paging abilities
• Can apply CSS styles• Hide unwanted fields
![Page 19: E Pi Server Easy Search Technical Overview](https://reader036.vdocuments.us/reader036/viewer/2022082708/5465f684b4af9fda3f8b4ddf/html5/thumbnails/19.jpg)
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