首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Vulcan弹性搜索的EPiServer映射误差

基于Vulcan弹性搜索的EPiServer映射误差
EN

Stack Overflow用户
提问于 2018-03-08 09:45:26
回答 1查看 164关注 0票数 1

是否有人使用EPiServer的elasticsearch客户端,名为Vulcan?(https://github.com/TCB-Internet-Solutions/vulcan)

通过所有的帐户(包括这个写得很好的帐户:https://blog.wsol.com/getting-started-using-vulcan-search-in-episerver),它应该像从EPiServer NuGet提要安装NuGet包"TcbInternetSolutions.Vulcan.Core“一样简单,添加web.config设置,并运行预定的作业来索引数据。

我将NuGet包(3.0.1版)安装到我的EPiServer项目(11.2.1版)中,并设置了EPiServer设置和索引作业报告“作业已经完成。请刷新页面以查看状态”。运行历史记录显示"Vulcan成功地在一个索引器中索引了100个项目!“。

但是,当我锁定"\App_Data\EPiServerErrors.log“文件时,我会看到大量错误,如:

错误TcbInternetSolutions.Vulcan.Core.Implementation.VulcanClient: Vulcan无法索引内容链接10的内容内容,用于en: System.Exception:无效的嵌套响应,它是在PUT: /customername_en/EPiServer.Core.BlockData/10 BadResponse: Node:http://localhost:9200/的低级别调用不成功生成的,原因是:-1 BadResponse:Node:http://localhost:9200/接受了: 00:00:00.4026489 ServerError: ServerError: 400Type: mapper_parsing_exception原因:“未能找到contentAssetsID的类型解析字符串”OriginalException: System.Net.WebException:远程服务器返回错误:(400)坏请求。在Elasticsearch.Net.HttpConnection.RequestTReturn的C:\Projects\elastic\net-2\src\Elasticsearch.Net\Connection\HttpConnection.cs:line 163的System.Net.HttpWebRequest.GetResponse()

它似乎未能索引索引"EPiServer.Core.BlockData“中的"customername_en”类型,因为当"contentAssetsID“应该是数字时,所有内容都会默认映射到字符串。因此,我尝试添加一个初始化类来将映射设置为AutoMap:

代码语言:javascript
复制
[ModuleDependency(typeof(ServiceContainerInitialization))]
public class SearchInitialization : IConfigurableModule
{
    public void ConfigureContainer(ServiceConfigurationContext context)
    {
        // Nothing to do
    }

    public void Initialize(InitializationEngine context)
    {
        var vh = ServiceLocator.Current.GetInstance<VulcanHandler>();
        var vhClient = vh.GetClient(new System.Globalization.CultureInfo("en"));
        var res = vhClient.Map<EPiServer.Core.BlockData>(m => m.AutoMap());
    }

    public void Uninitialize(InitializationEngine context)
    {
        // Nothing to do
    }
}

"res“返回一个成功的响应,但错误仍然发生。

这里的全部错误:https://pastebin.com/T7NPgZj9

请帮帮我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-28 15:44:17

多亏了Dimitar,我用的是ElasticSearch 5而不是2。在更改到版本2之后,它就起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49169991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档