Networked Planet Easy Search Technical Overview Problem Statement

Networked. Planet 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!

Easy. Search • Simple – Easy to install • Via EPi. Server Manager • Easy to configure – Edit XML in web. config – Extremely flexible configuration model – Combine and transform individual page properties • Full Intelli. Sense support inside Visual Studio • Inexpensive – FREE for all non-commercial use – NOK 30, 000 for commercial deployment (approx. £ 3, 000) – Enterprise license pricing available on request

Published Source • Published on EPi. Code 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

Improved Indexing • Page and files are indexed on EPi. Server 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

Configuration • Configured within web. config <section name="indexconfiguration" type="Networked. Planet. Easy. Search. Lucene. System. Configuration. Reader, Networked. Planet. Easy. Search. Lucene" /> • Index all page types • Joining all string, long string and XHTML properties <indexconfiguration />

Configuration 2 • Index specific page types <indexonconfiguration xmlns="http: //www. networkedplanet. com/schema/easysearch/configuration " xmlns: xsi="http: //www. w 3. 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. w 3. org/2001/XMLSchema-instance " > <pagetype name=“person”> <property name=“description”/> <property name=“EPi_Page. Name”/> </pagetype> </indexconfiguration>

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. w 3. org/2001/XMLSchema-instance " xsi: type="lucene: Lucene. Index. Configuration "> <pagetype Name="Person"> <property Name="description“ Include. In. Common. Content=" true“ xsi: type="lucene: Lucene. Property“> <lucene: field Name="description“ Field. Store=" NO“ Field. Term. Vector=" NO" Field. Index=" TOKENIZED“ Boost=" 1. 2“ /> </property> <property Name="EPi_Page. Name“ Include. In. Common. Content=" true" /> </pagetype> </indexconfiguration>

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. w 3. org/2001/XMLSchema-instance " xsi: type="lucene: Lucene. Index. Configuration "> <lucene: configuration Relative. Direcory. Path="Easy. Search. Lucene. Index" Document. Primary. Key=" EPi_Page. Id" Document. Primary. Key. Field=" easysearch_primarykey" Document. Common. Content. Field=" easysearch_primarycontent" Index. Writer. Maximum. Field. Length=" 25000"> </indexconfiguration>

Easy. Search – 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 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.

Developer’s API • Easy. Search 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

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

Provided Web Parts • Easy. Search comes with 3 ASP. NET Web Parts – Easy. Search. Input. Web. Part – ESSearch. Results. Web. Part – Paging. Web. Part • 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

Easy. Search. Input. Web. Part • Captures input: – From URL parameters – From HTML form input • Can apply CSS styles • Hide unwanted fields

ESSearch. Results. Web. Part • Produces XML • Web part allows customization using XSLT & CSS <? xml version="1. 0" encoding="utf-8" ? > <Search. Results> <Search. Result> <index>3</index> <pageid>2334</pageid> <assettype>page</assettype> <linkurl> /EPi. Server 1/Networked. Planet/EPi. Server. Module. Demo/Templates/Person. Tem 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> </Search. Results>

ESSearch. Results. Web. Part • Ships with XSLT for HTML formatted results

Paging. Web. Part • Plugs in to ESSearch. Results. Web. Part – Allows paging abilities • Can apply CSS styles • Hide unwanted fields

Easy. Search Roadmap • • • Internationalization Support – DONE! Security Support - DONE! Integration with EPi. Server Module - DONE! Indexing of content in UFS - DONE! Generic Search Results custom control - DONE! Pluggable Search Pipeline - DONE! Federated search via Open. Search - In Progress Support for multiple EPi. Server servers - In Progress Editor plug-in - In Progress Synonym Search Statistics – What people wanted and didn’t find – Common search terms tracking
- Slides: 19