Using EPiServer FIND outside of EPiServer website

Vote:
 

Hi all

Does anybody have any expreince of using their EPiServer find index outside of their EPiServer website?

For example, by a standard .NET website or .NET services/applications.

My understanding is that this should be possible using either:

  • EPiServer FIND client API - This API has no EPiServer CMS/Framework dependencies so looks like it would be perfect for the job.
  • ElasticSearch client API - Like NEST or something similar. 

The index I am planning to create will contain

  • PageData, BlockData objects from the EPiServer instance.
  • Custom objects.

Beyond the standard functinoality I am used to using with FIND in an EPiServer website, I would like to be able to:

  • Query and return the PageData/BlockData objects from the index in a strongly typed maner outside of the EPiServer website.
  • Query and return the custom objects from the from the index in a strongly typed maner from both the EPiServer and none EPiServer websites.
  • Update the custom objects from both the EPiServer and none EPiServer websites.

I think this will be achivable by using interfaces or DTO's shared by the applications to de-searialze the responses into.

Before we start a proof of concept, does anybody have experience of doing this or links to usefull information/guidance on achiving this.

Many thanks

Adam

#120299
Apr 14, 2015 19:10
Vote:
 

It doesn't have to be an EPiServer site. In the Find training you work a lot with a console app for example. Here you can download a sample app with an "open" Find index:
http://world.episerver.com/blogs/Allan-Thran/Dates/2015/3/want-to-try-out-episerver-find-here-is-an-easy-way-and-a-fun-challenge/

I often test querying using a console app also. And we have Find installed in other types of .NET projects as well. No problems!

You just only install the "EPiServer.Find" package and not Find.Framework or Find.CMS.

You need to have the models available in your project though so querying for content types and get an "actual" EPi content result back will not work since there's a lot of stuff happening with the content type initialization inside EPi. With Find inside EPi your result will pass through GetContents(contentRefs[]) so the result you work with is live even though the querying has been done against index data.

You can however select certain EPi Content Type properties and map to your own known model or an anonymous result.

I wouldn't recommend and don't see the need for using something else than the EPiServer.Find package even though you probably can Fiddler investigate and use the REST service by yourself through other technology.

#120337
Edited, Apr 15, 2015 13:00
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.