在Episerver查找中为项目建立索引时,“ 504-网关超时”

时间:2018-11-29 13:02:00

标签: episerver episerver-find

将项目编入索引时,它会有时失败并给出

The remote server returned an error: (504) Gateway Timeout. [The remote server returned an error: (504) Gateway Timeout.]

索引逻辑如下所示

var client = EPiServer.Find.Framework.SearchClient.Instance;
List<ItemModel> items = getItems(); // Get more than 1000 items
List<ItemModel> tempItems = new List<ItemModel>();

//Index 50 items at a time
foreach(var item in items)
{
    tempItems.Add(item);
    if (tempItems.Count == 50)
    {
        client.Index(tempItems);
        tempItems.Clear();
    }
}

什么原因导致这种情况发生?

注意:上面提到的 ItemModel 是一个自定义模型,未实现接口(例如 IContent )。 items ItemModel 对象的列表。

其他信息:
EPiServer.Find.Framework版本13.0.1
EPiServer.CMS.Core版本11.9.2

1 个答案:

答案 0 :(得分:0)

我一直认为{<1>}在“查找”中操作数据时有些粗略,据我所知(但必须对此进行检查),SearchClient在请求限制下服从Episerver Find的功能,当在循环中进行较大的操作时,它往往会超时。

相反,请使用SearchClient,即

ContentIndexer

据我所知,这是从索引中删除内容的最安全的方法。