Episerver统一搜索检查当前页面祖先是否有名称

tvokkenx  于 2022-10-06  发布在  ElasticSearch
关注(0)|答案(1)|浏览(108)

我正在尝试编写一个查询,我想在其中搜索是否有任何祖先具有特定的名字。我写了这个,但不起作用

query = query.Filter(i =>
(
!i.MatchTypeHierarchy(typeof(InfoPage)) |
    _contentLoader.GetAncestors(((InfoPage)i).ContentLink).MatchItem(k => k.Name.Match("foresatte"))
)
);

我也试过这个

query = query.Filter(i =>
(
!i.MatchTypeHierarchy(typeof(InfoPage)) |
    _contentLoader.GetAncestors(((InfoPage)i).ContentLink).MatchContainedCaseInsensitive(k => k.Name, "foresatte")
)
);

当我这样做的时候

(((InfoPage)i).Ancestors()

然后我拿回了ID,但我想要搜索页面名称。

bxfogqkk

bxfogqkk1#

我会说,这是一种性能昂贵的方法。相反,请尝试使用在索引期间将祖先名称写入查找注册表的自定义投影。

https://docs.developers.optimizely.com/digital-experience-platform/v1.1.0-search-and-navigation/docs/customizing-default-projections

相关问题