You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unified Search是否有类似Contains的功能?FIND查询字符串包含子串咨询

在Episerver FIND/Unified Search中实现字符串包含子串检测

1. 分词式匹配(类似业务逻辑里的Contains)

如果你的需求是匹配包含目标词汇的文档(比如搜"apple"能匹配到"apple pie"这类包含该词的内容),直接用FIND内置的Match方法就好——这是基于索引的全文检索,比手动判断Contains高效得多:

query = query.Filter(i => 
    !i.MatchTypeHierarchy(typeof(InfoPage)) 
    || (i.MatchTypeHierarchy(typeof(InfoPage)) 
        && ((InfoPage)i).SearchSubsection().Match(SOMETHING))
);

2. 精确子串匹配(包含任意片段,不分词)

要是你需要严格匹配包含某个子串(比如找包含"meth"的"something"),就得用通配符查询:

  • 使用Wildcard方法,在目标字符串前后加*就行。注意:前导通配符(*xxx)会影响查询性能,非必要别用,优先用后缀通配符(xxx*)或者全文匹配。
query = query.Filter(i => 
    !i.MatchTypeHierarchy(typeof(InfoPage)) 
    || (i.MatchTypeHierarchy(typeof(InfoPage)) 
        && ((InfoPage)i).SearchSubsection().Exists()
        && ((InfoPage)i).SearchSubsection().Wildcard($"*{SOMETHING}*"))
);

你也可以用QueryString方法结合通配符,直接指定字段:

query = query.QueryString($"SearchSubsection:*{SOMETHING}*");

3. 关键注意点

  • 确保你的SearchSubsection字段在索引配置里被设为Searchable,否则这些匹配方法都不生效。
  • 保留Exists()检查是对的,可以避免字段为空时的无效匹配。

内容的提问来源于stack exchange,提问作者mohsinali1317

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 13:01:42