Help shape the future of CMS PaaS release notes! Take this quick survey and share your feedback. 

andreas.ek@internetfabriken.se
Mar 22, 2009
  8213
(0 votes)

Easy made search function for EPiServer

Technorati-taggar: ,

This is an easy example to find pages from a seachword into a pagedatacollection in EPiServer PageTextIndex database.

Header for “using”:

---

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EPiServer;
using EPiServer.Core;

---

And the code to do the search in the EPiServer PageTextIndex database:

---

/// <summary>
/// Simple use of PageSearch with default value for PageID and MaxCount.
/// </summary>
/// <param name="SearchWord">The word to search for</param>
/// <returns>PageDataCollection</returns>
public static PageDataCollection PageSearch(string SearchWord)
{
    return PageSearch(SearchWord, PageReference.StartPage.ID, 100);
}

/// <summary>
/// Make a quick search to the EPiServer PageTextIndex database with this function.
/// </summary>
/// <param name="SearchWords">The word to search for</param>
/// <param name="PageID">Page ID of the root page to search from</param>
/// <param name="MaxCount">Maximum count of pages in the result</param>
/// <returns>PageDataCollection</returns>

public static PageDataCollection PageSearch(string SearchWord, int PageID, int MaxCount)
{
    PageDataCollection pages = new PageDataCollection();
    bool onlywholeword = false;

    EPiServer.Core.Html.TextSearchParameters searchparam = new EPiServer.Core.Html.TextSearchParameters(SearchWord, onlywholeword);

    if (searchparam.ContainsSearchWords)
    {
        EPiServer.Core.Html.TextSearchResults result = null;
        EPiServer.DataAccess.PageTextIndexDB xdb = new EPiServer.DataAccess.PageTextIndexDB();
        result = xdb.SearchPages(searchparam, PageID, MaxCount);

        List<EPiServer.Core.Html.PageRank> list = result.ToList();
        foreach (EPiServer.Core.Html.PageRank pageRank in list)
        {
            EPiServer.Core.Html.TextSearchMatch match = pageRank as EPiServer.Core.Html.TextSearchMatch;
            if (match != null)
            {
                pages.Add(match.PageData);
            }
        }
    }
    return pages;
}

 

Any other suggestion to easy search for content in EPiServer pages? It would be great!

Mar 22, 2009

Comments

Sep 21, 2010 10:32 AM

Well, you could use the SearchDataSource

eg:
pagedDataSource.DataSource = searchDataSource.Select(new DataSourceSelectArguments());
/ Flalar

Sep 21, 2010 10:32 AM

You're using the EPiServer.DataAccess namespace directly, which is kind of not allowed.

/Steve

Sep 21, 2010 10:32 AM

The EPiServer police may arrest you:)
/ Anders Hattestad

Sep 21, 2010 10:32 AM

Yes, it's a risk I will take to get happy customers! ;-)

Please login to comment.
Latest blogs
How to: set access right to folders

Today I stumped upon this question Solution for Handling File Upload Permissions in Episerver CMS 12, and there is a simple solution for that Using...

Quan Mai | Feb 7, 2025 | Syndicated blog

Poking around in the new Visual Builder and the SaaS CMS

Early findings from using a SaaS CMS instance and the new Visual Builder grids.

Johan Kronberg | Feb 7, 2025 | Syndicated blog

Be careful with your (order) notes

This happened a quite ago but only now I have had time to write about it. Once upon a time, I was asked to look into a customer database (in a big...

Quan Mai | Feb 5, 2025 | Syndicated blog

Imagevault download picker

This open source extension enables you to download images as ImageData with ContentReference from the ImageVault picker. It serves as an alternativ...

Luc Gosso (MVP) | Feb 4, 2025 | Syndicated blog

Optimizely SaaS vs PaaS: A Comparison from Client and Developer Perspectives

Optimizely, one of the leading digital experience platform. Offering both Software-as-a-Service (SaaS) and Platform-as-a-Service (PaaS) solutions....

Praful Jangid | Feb 3, 2025

Returning to Optimizely After Many Years

Returning to Optimizely After Many Years: A Journey Through Its New Features After several years away from Optimizely’s Content Management … More

Jose Neto | Feb 2, 2025 | Syndicated blog