Quantcast
Channel: Optimizely Search & Navigation
Viewing all 6894 articles
Browse latest View live

[BUG] OriginalObjectGetter is missing for WebContent

$
0
0

Hi,

OriginalObjectGetter is missing for WebContent. Is this by-design? This means we can't do following:

private static WebContent GetWebContent(UnifiedSearchHit hit)
{
    if (hit.OriginalObjectGetter != null)
    {
        var original = hit.OriginalObjectGetter.Invoke();
        if (original is WebContent)
        {
            return (WebContent)original;
        }
    }
    return null;
}

EPiServer Find error on upgrade to 12.0.0.4448

$
0
0

Hi,

I'm trying to upgrade to the latest version of Find on an existing commerce site. It worked fine before the Find upgrade, now I get this:

[ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.]
System.Reflection.RuntimeModule.GetTypes(RuntimeModule module) +0
System.Reflection.Assembly.GetTypes() +118
EPiServer.Find.ClientConventions.<>c__DisplayClass5.b__3(Assembly a) +30
EPiServer.Find.Helpers.ListExtensions.ForEach(IEnumerable`1 value, Action`1 action) +154
EPiServer.Find.ClientConventions.NestedConventions.MarkAllImplementationsAsNested(Type declaringType, String name) +209
EPiServer.Find.Commerce.CatalogContentClientConventions.ApplyNestedConventions(NestedConventions nestedConventions) +298
EPiServer.Find.Commerce.CatalogContentClientConventions.ApplyConventions(IClientConventions clientConventions) +81
EPiServer.Find.Commerce.FindCommerceInitializationModule.Initialize(InitializationEngine context) +104
EPiServer.Framework.Initialization.Internal.ModuleNode.Execute(Action a, String key) +56
EPiServer.Framework.Initialization.InitializationEngine.InitializeModules() +244

[InitializationException: Initialize action failed for Initialize on class EPiServer.Find.Commerce.FindCommerceInitializationModule, EPiServer.Find.Commerce, Version=9.6.0.138, Culture=neutral, PublicKeyToken=8fe83dea738b45b7]
EPiServer.Framework.Initialization.InitializationEngine.InitializeModules() +752
EPiServer.Framework.Initialization.InitializationEngine.ExecuteTransition(Boolean continueTransitions) +153
EPiServer.Framework.Initialization.InitializationModule.EngineExecute(HostType hostType, Action`1 engineAction) +786
EPiServer.Framework.Initialization.InitializationModule.FrameworkInitialization(HostType hostType) +230
EPiServer.Global..ctor() +104
SomeApp.Web.EPiServerApplication..ctor() +43

I'm using CMS v9.8.3

Any idea what's going wrong?

Many thanks.

Facet in UnifiedSearch for MetaData

$
0
0

I have addead metadata containing commaseparetad strings, I would like to facet on those in Find.

I have tried  

query = query.TermsFacetFor(x => x.SearchMetaData["Publishers"].StringValue.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries));

But it does only give me a facet with name SearchMetaData.Publishers.StringValue.Split and no terms. How do i get facets on other properties in UnifiedSearch?

"Bad Request" when using nested queries for facets

$
0
0

I'm having issues getting nested queries and facets to work on my Commerce catalog content types, specifically a product content and a variation content.

I'm running Find 11.1.0.3965, Commerce 9.8.1, and CMS 9.6.1.

The issue

When I try to get results from Find, I'm getting a "(400) Bad Request" (I've tried to cut out unnecessary error data):

SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; 
...
Parse Failure [Failed to parse source 
..."facets":{"MyNestedObjects.NestedObjectProperty":{"terms":{"field":"MyNestedObjects.NestedObjectProperty$$string"},"nested":"MyNestedObjects"},
...
Parse Failure [facet nested path [MyNestedObjects] not found]]; }

The code

Based on the documentation (http://world.episerver.com/documentation/Items/Developers-Guide/EPiServer-Find/11/DotNET-Client-API/Searching/nested-queries/), I think I have everything configured and developed correctly.

This is done in an initialization module:

SearchClient.Instance.Conventions.NestedConventions.ForType().Add(content => content.MyNestedObjects);
SearchClient.Instance.Conventions.NestedConventions.ForType().Add(content => content.MyNestedObjects);

On the content types, I have the properties as such:

public IEnumerable MyNestedObjects
{
    get
    {
        var listOfNestedObjects = new List();
        ...
        return listOfNestedObjects;
    }
}

And I'm setting up the search and facets like this:

SearchClient.Instance.Search(Language.English)
    .For(someQueryText)
    .InFields(x => x.DisplayName)
    .InAllField()
    .TermsFacetFor(x => x.MyNestedObjects, x => x.NestedObjectProperty);
    .GetContentResult();

And an example of the indexed data on an instance of the content looks like:

..."MyNestedObjects$$nested": [
{"$type": "MyProject.Objects.NestedObject, MyProject","___types": ["MyProject.Objects.NestedObject","System.Object"
    ],"NestedObjectProperty$$string": "Some Value"
}]
...

I have also tried this all as a function call on the content types, making sure to IncludeField() the function call, but the result is the same.

So everything looks to be set up correctly, right? What gives?

How to handle FIND server timeout

$
0
0

How can I programmatically check if FIND server is down, and ignore that logic for that moment?

Now we have startpage listings that are fetched directly from FIND, and suddenly...

"EPiServer.Find.ServiceException: The remote server returned an error: (500) Internal Server Error.

EPiServer Find will be back in a moment. Sorry for any inconvenience :-( ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error."

Best practice to avoid exception all the way up?

any ideas are welcome, thanks :-)

/Fredrik

Cache FIND

$
0
0

Hi,

On occastions FIND goes offline due to technical reasons. Is there away to:

1. Detect when FIND is non responsive / down

2. Cache results locally and only use when FIND is down.

Thanks

Jon

Filtering a list of geo locations

$
0
0

We have trip object contains a list of geographic locations as this

     public NestedList<GeoLocation> GeoLocations { get; set; }

I can see the list being indexed

We have the filter like the below to find trips within an area.

   SearchQuery = SearchQuery.Filter(t => t.GeoLocations, geo => geo.Within(searchParameters.Sodermalm));

However the Find fails to execute the phase: failed to find geo_point field

 

{"error":"SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures .........................

] failed to find geo_point field [GeoLocations$$nested.]]; }]","status":400}

Anyone can help this. Thanks a lot.

Filtering a list of geo locations

$
0
0

Hi,

I have an object which contains a list of geographic locations as this:

public List<GeoLocation> Locations{get; set;}

This list is being correctly (as far as I can see) indexed by EPiServer Find.

I would then like to use the Within method for each of the locations in the Locations-list to check if any of them are within the specified polygon specified in the Within method.

I've tried using MatchContained, which not really is an option - and also tried using Nested2Find (changing the Location-list to NestedList<GeoLocation> using as follows:

query.Filter(x => x.Locations, l => l.Within((IEnumerable<GeoLocation>) bounds));

but this throws an exception saying:

QueryParsingException[[myIndex_Dev] failed to find geo_point field []


Any ideas on how to accomplish what I'm looking for ?


Indexing content in IList property

$
0
0

Hi,

I'm having a IList<ContentReference> property on a page and want to indexing it's content.

Indexing content in a content area works just fine,

http://world.episerver.com/documentation/Items/Developers-Guide/EPiServer-Find/8/Integration/EPiServer-75/Indexing-content-in-a-content-area/

But it doesn't seems to be the way to indexing IList content. Any ideas anyone? 

Thank you!

Find Unified search stop working

$
0
0

we have had annoying problems with Find for few weeks now. At some point it seems that UnifiedSearch stops working and we get no results, while some other find searches still work. In error log we see this re-occuring:

 EPiServer.Find.Cms.CmsUnifiedSearchSetUp: IAttachmentHelper can not be initiated.

The problems seems to go away with IIS reset. Does anyone have any clue what could cause this? Our Episerver DLL:s are in version 9.10.0.0 and Find in 12.0.0.4448

Exclude indexing of images

$
0
0

Hi ,

Our website is running on episerver 6 R2. Is it possible to exclude indexing of images/ VPP folder.  Is there an equivalent method in episerver find for restricting VPP resources, 1.x as below:

ContentIndexer.Instance.Conventions.ForInstancesOf<EPiServer.Core.ContentAssetFolder>.ShouldIndex()

Many thanks in advance.

Can I control adding tracking scripts ?

$
0
0

Hi,

I would like to block Episerver to adding those script on every page:

http://dl.episerver.net/12.0.0/epi-util/native.history.js

http://dl.episerver.net/12.0.0/epi-util/find.js

Google Speed complanins they are blocking render speed -> "Eliminate render-blocking JavaScript and CSS in above-the-fold content"

I would like them to load them manually at the end of page, plus compress them.

Any ideas?

Find: Indexing for immediate use

$
0
0

In the Find documentation I found that, for testing purposes, you can do:

client.Index(toIndex, x => x.Refresh = true);


However, when toIndex is a list of objects, I get the following error:

{"Invalid type id. Maximum 200  word characters (letter, number, underscore, dot, comma): System_Collections_Generic_List`1[[DGTNext_Api_Data_DB_Product, DGTNext_Api_Entities, Version=1_0_0_0, Culture=neutral, PublicKeyToken=null]]."}

Iterating causes no error:

foreach (var prod in toIndex) client.Index(prod, x => x.Refresh = true);


It is a short list, 5 small objects. Still, it seems it's over some (quite small) limit for immediate indexing, is that correct?

So, my next question is, if I have to do the iteration, do I need to add the Refresh = true clause for each object, or is it sufficient to do it for the last one? In other words, does the Refresh just mean "process this object" or "process all unprocessed objects"?

Thanks.

ApplySynonyms missing?

$
0
0

The apply synonyms function works in the preview weights function in Find configuration tool. But where can I find the function in the .Net api? I think it should be something like .ApplyBestBets (.ApplySynonyms)

FIND Goes down causes errors

$
0
0

Hi,

occasionally when FIND goes down our pages tend to throw an exception which we can't seem to catch correctly.

Server side we have this sort of thing:

try {
.....
Results = query.GetResult(hitSpec);
......
}
catch(exception ex) {
....
}



Then in the front end we have this:

<% if (Results != null)
{ %><% if (Query != null && Query != "")
{ %><p>
Your search for '<i><%: Query %></i>'
resulted in <strong><%: Results.TotalMatching %></strong>
matches</p><% } %><% } %>

The Results != null does not seem to catch a NULL.

Has anyone found a way to combat this?

Jon


Find Unified Search and Commerce Catalog Content: No URL on searchHit's returned

$
0
0

Hello,

I have been having an issue with Unified Search results for Commerce product variations that get returned. I have tried several ways to project the url to the results with little success. The only time I did get it to work was using the depricated UnifiedSearchRegistry.CustomizeProjection. That broke when I upgraded to the latest version of Find. Seems weird to me that Commerce content is not fully supported by default in the latest version of Find. Perhaps I am missing something? To even get the indexed variants to show in Unified Search results, I have to manually add them to the UnifiedSearchRegistry via an InitializableModule. 

Here is how I am trying to project the URL in my InitializableModule:

var registry = SearchClient.Instance.Conventions.UnifiedSearchRegistry;
registry.Add<EJItemData>()
            .ProjectUrlFrom<EJItemData>(product => product.ContentLink.GetUrl());

The GetUrl() is a custom extension method. Here is how I am looping through the results and assigning the URL:

foreach (var item in results)
{
      var test = item.GetOriginalType().Name;               
      searchItems.Add(new SearchHit()
      {
             Name = HttpUtility.HtmlDecode(item.Title),
             Url = item.Url,
             Teaser = HttpUtility.HtmlDecode(item.Excerpt)
      });                
 }

The url on the variantion results is always empty. Any help on with this would be grately appreciated. Here are the versions I am using with everything:

<package id="EPiServer.CMS" version="9.12.0" targetFramework="net452" /><package id="EPiServer.CMS.Core" version="9.12.0" targetFramework="net452" /><package id="EPiServer.CMS.UI" version="9.8.1" targetFramework="net452" /><package id="EPiServer.CMS.UI.Core" version="9.8.1" targetFramework="net452" /><package id="EPiServer.Commerce" version="9.19.1" targetFramework="net452" /><package id="EPiServer.Commerce.Core" version="9.19.1" targetFramework="net452" /><package id="EPiServer.Commerce.FindSearchProvider" version="8.13.0" targetFramework="net452" /><package id="EPiServer.Commerce.UI" version="9.19.1" targetFramework="net452" /><package id="EPiServer.Commerce.UI.ManagerIntegration" version="9.19.1" targetFramework="net452" /><package id="EPiServer.Find" version="12.0.1" targetFramework="net452" /><package id="EPiServer.Find.Cms" version="12.0.1" targetFramework="net452" /><package id="EPiServer.Find.Framework" version="12.0.1" targetFramework="net452" />

Thanks in advance!

Developer index document limit issues

$
0
0

I'm working on an eCommerce build that uses EPi Find.....  We are running into issues in our development environment that we constantly hit our developers index limit of 10k documents....  we've done the best we can to restrict content as much as possible, but to get a good set of test data to cover all aspects of the Commerce and CMS instance we are still going slightly over.

As soon as the limit is hit, both Commerce, Commerce Manager and the CMS applications begin to encounter 403 errors which in some places are impossible to catch and handle.

Has anyone had this issue and found a way round it?  I think the only avenue is to request episerver increase the limit.....  

Best Bets With Invalid Commerce Content

$
0
0

Hi,

There seems to be an outstanding bug in best bets, when used with commerce, if the user sets up a best bet selecting a category as the commerce content (instead of a page or variant). This results in a cast error, and also prevents the Epi Find UI from loading correctly (so the invalid best bet can't be deleted through the Find UI).

Is there a fix for this available, and if not, do you have a script we can use to delete all best bets from the DB directly?

Thanks

Reindex page when block in contentarea is changed.

$
0
0

I use IndexInContentAreasAttribute on my block type, by doing so the content on my blocks are being index when the page is published/republished. If the block it self is updated the index for the page is not updated, so I need to change the block and then make a bogus change on my page or wait until the indexing job runs to make the new content searchable. Are there any built in feature that fixes this issue?

- Marcus

Unable to config Find after installing OWIN or Service API

$
0
0

After installing OWIN or Service API, a login pop up will be displayed when visiting the Find configure page(https://dl.dropboxusercontent.com/u/19725692/Find.PNG). Even though admin inputs the correct login credential, the login dialog still remains.

A 401 error was thrown when posting request to EPiServer/Find/api/editorialboosting/searchwithweights/

The OWIN startup set the Bearer Token Authentication, which causes the problem. I believe this is a bug. But any workaround would be appreciated!

Viewing all 6894 articles
Browse latest View live