After upgrading FIND, the filter FilterForVisitor() returns no hits
If I am logged in though, it works fine.
But all pages are open for Everyone and published...
Any breaking changes that I could have missed?
After upgrading FIND, the filter FilterForVisitor() returns no hits
If I am logged in though, it works fine.
But all pages are open for Everyone and published...
Any breaking changes that I could have missed?
I'm setting up an instance of EPiServer Find for a client and we are finding that there are some features we aren't imlementing.
eg. AutoComplete, BestBets option to show in own design etc.
These are confusing for the editors when they aren't being used. Is there anyway to disable these from the Admin interface?
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 [FitmentModels2] 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<MyProductContent>().Add(content => content.MyNestedObjects); SearchClient.Instance.Conventions.NestedConventions.ForType<MyVariationContent>().Add(content => content.MyNestedObjects);
On the content types, I have the properties as such:
public IEnumerable<NestedObject> MyNestedObjects { get { var listOfNestedObjects = new List<NestedObject>(); ... return listOfNestedObjects; } }
And I'm setting up the search and facets like this:
SearchClient.Instance.Search<MyProductContent>(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?
I tried to follow the documentation from http://world.episerver.com/documentation/Items/Developers-Guide/EPiServer-Commerce/9/Search/find-integration/indexing-variations-in-a-product-document/
But it seems quite out of date, as IndexContentsIfNeeded is no longer makred as virtual.
Can anyone provide me some sample pls?
Thanks in advance
Hi,
I've just upgraded a project to the latest version of EPiServer and Find and all pages take ages to load which looks like it's caused as it's trying to look up "dl.episerver.net/..." which I believe is related to Find. The site is on a dev VM which does not have internet access and can not have internet access and I won't be able to get anything opened up to allow the lookup of this.
Is there an 'offline' solution to either prevent this lookup or have the files it needs locally?
Thanks in advance,
Mark
Hi,
I'm wondering how to implement Episerver Find in an DXC solution. Do all sites share the same index or is it possible to have separate index for each site?
Thanks
I'm having a problem with the synonyms list in Find UI. When adding a synonym, i get a message that the synonym is saved and the response is something like this:
{"status":"ok","id":"2Bvbv-2iS5u6S5tAlhtsmQ"}
But the list doesn't update. Reloading the ui does not help. Still an empty list. Any suggestions?
Find version is 11.1.4.4296
Regards
Patric
Getting a wierd response from Episerver Find UI; all requests, bot POST and GET to endpoints beginning with /Find/proxy/ returns a 406 (Not acceptable) header. Both in development and production.
Console dump:
GET http://some-site-dev.local/secret-path-ui/Find/proxy/_admin/unifiedweights/?tags=searchtype%3Adefault&dojo.preventCache=1463639710173 406 (Not Acceptable) {message: "Unable to load /secret-path-ui/Find/proxy/_admin/unifiedwe…fault&dojo.preventCache=1463639710173 status: 406", response: Object, status: 406, responseText: "", xhr: XMLHttpRequest} GET http://some-site-dev.local/secret-path-ui/Find/proxy/_admin/unifiedweights/?tags=searchtype%3Adefault&dojo.preventCache=1463639710289 406 (Not Acceptable) POST http://some-site-dev.local/secret-path-ui/Find/proxy/_search 406 (Not Acceptable) {message: "Unable to load /secret-path-ui/Find/proxy/_search status: 406", response: Object, status: 406, responseText: "", xhr: XMLHttpRequest}
Version list:
Any ideas?
Hi,
I tried using this extension method to add a image thumbnail to my search results as most of my pages have some sort of image, I used what 'http://find.episerver.com/Documentation/unified-search' suggested, and tried first this (in a init module depending on "IndexingModule"):
SearchClient.Instance.Conventions.UnifiedSearchRegistry.ForInstanceOf<ArticlePage>().ProjectImageUriFrom(a => a.ImageUri);
I also tried this:
SearchClient.Instance.Conventions.UnifiedSearchRegistry.ForInstanceOf<ArticlePage>() .CustomizeProjection(p => p.ProjectImageUriFrom<ArticlePage>(a => a.ImageUri));
I then reindexed and made a search like so:
EPiServer.Find.Framework.SearchClient.Instance.UnifiedSearchFor(query.Term, Language.Swedish).GetResult();
They both throw the error: "EPiServer.Find.ProjectionException: To deserialize objects the $type property must be set."
Could someone point me in the right direction as of how exactly I am supposed to use these projection extensions?
Hello,
After upgrading to the latest version of EPiServer Find we get the error "Please use GetContentResult extension method for getting results with content types". The thing is, the type/types we are searching for are not content types. What changed in the new version?
/Peter
Hi,
Has the Spelling Suggestions been removed from FIND 11? I would like to have a Spelling Suggestion on my search results page but I cant seem to find out how this is implemented in Episerver FIND 11 (CMS 9).
Many thanks,
jon
I'm starting to implement Find on a QuickSilver solution replacing the Lucene-based implementation. What I'm a bit puzzled about is how to implement a flexible way of handling facets/filters.
In the Lucene implementation all is controlled by the Mediachase.Search.Filters.config file which gives a quite good flexible way of handling which facets/filters should be available.
In Find it seems I must implement all facet logic in code making it not so flexible or am I missing something?
The structure for facets is to use the TermsFacetFor(x => x.Property) and since I need to provide that strongly typed information in the builup of the query there is no simple way of handling this, like say in a config-file or appSettings. A good solution would have been to let administrators have a way of controlling the facets and filters but since it seems that all needs to be coded there is no such way?
Another thing that comes apparent in how the customer we are working for wants the search functionality to be is that available filters and facets is based on the variants but the searchresult is presented as products.
The Quicksilver implementation for this is that the products have fields for color, sizes that represent their variants different settings. Is this the way to solve this or is there another way of filtering variants but presenting products?
Any suggestions on how to handle those scenarios?
Can the free text search as detailed here
be configured to match all the terms (minus stop words used) - as detailed in the improving precision part of theelastic search document here
http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/match-multi-word.html
For instance if I do a search for cottages in belfast it returns a tonne of results with just cottages that we don't want to see
Many Thanks
Have Googled and browsed around some topics but not sure I have found a conclusive answer to what I thought should be a simple question:
Can I sort Find results of commerce variations by price?
As prices are nested objects I can't see a way to OrderBy them natively with the Find API.. I have also looked at https://github.com/x2find/Nested2Find which might work (but I haven't tried this yet).
Hopefully this is a simple question for someone :)
Matt
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?
Hi,
I am getting a strange behaviour for pages that has been index by episerver find. It will add the language branch to url in the search result i.e. mysite.com/en/awsomepage. But when moved inside the startpage structure it will remove the language branch.
The site is of course mappes in mange site section to a language for the start page but why is this happening for pages outside? The link will return 404 but when removing the /en/ part it works.
Worth mentioning is that we have to languages active on the site en/sv but only one is in use. And as I mentioned when moving the page inside the startpage structure it will remove the language branch.
Hi,
I am working on a project where we are going from a single site solution to a mulitsite solution.
For the original site we have a standard Epi Find Index. When extending to a multisite, we want to keep search results separate for each site.
I have therfor thought that the cleanest solution is to have one index per site.
How is the best way to set up this in configuration and with regards to the indexing job? And what is a good way to decide which index is used in the code?
We are currently using Epi Find unified search.
Thank you for any pointers :)
I'm currently trying to index a file, that sits outside of EPiServer following the example below. The object is index and i can see it in Find 'Overview'. However the SearchAttachmentText$$string field is missing and i can see the Attachment$$attachment. This leads me to the impression that Find isn't recorgnising the Attachment property. Not sure what is happening, however i need support to get his working.
http://world.episerver.com/documentation/Items/Developers-Guide/EPiServer-Find/9/DotNET-Client-API/File-attachments/
I have an index of Products, each with a Manufacturer. I created a histogram facet for the Manufacturer Ids in this way:
HistogramFacetFor(p => p.manufacturer.Id, 1)
and this worked just fine. Then I learned each Product can have a list of Manufacturers. How can I create a facet now?
For example, if the index contains Products:
{Product1
Manufacturers: [{Man1 Id: 1} {Man2 Id: 2}]
}
{Product2
Manufacturers: [{Man3 Id: 3} {Man2 Id: 2}]
}
I need to know that there is:
1 product with Manufacturer.Id 1
2 products with Manufacturer.Id 2
1 product with Manufacturer.Id 3
Thanks
I have an index of Product objects, each of which has a Manufacturer which has a Guid for an id. I would like to find out, for each Manufacturer, how many products it has.
I tried:
var res = client.Search<FooTest>().TermsFacetFor(x => x.man.guid.ToString()).Take(0).GetResult(); var hist = res.TermsFacetFor(x => x.man.guid.ToString());
But it doesn't work.
Of course if I directly save the guid as a string, it works. However, it seems like a lot of unnecessary conversion: to index the object, I convert the Guid to a string, then when get the results of a search I may have to convert the string back to a Guid. Is there a better way?
Thanks.