如何在 EpiFind 中检查字符串列表是否包含(子字符串)值?

问题描述 投票:0回答:2

我已经索引了一个对象,该对象具有诸如[“ZZA-KL-2A”,“ZZA-KL-ZZB”]之类的字符串列表。我想搜索并获取以某个 3 字母代码开头的所有项目。所以我想检查列表中的每个项目并检查“StartsWith”之类的内容。

我可以从文档中看到,我们有 Match、MatchContained 之类的东西,但没有任何字符串项目列表的开始。

请注意,在标记问题之前,此问题与 C# 或 LINQ 中的普通字符串比较无关。

find episerver episerver-find
2个回答
2
投票

只需使用过滤器

var searchQuery = client.Search<MyContent>()
  .Filter(x => x.OrderNumber.StartsWith("Find"));

https://world.episerver.com/documentation/developer-guides/search-navigation/NET-Client-API/searching/Filtering/


1
投票

您可以使用

Prefix
PrefixCaseInsensitive
:

按字符串开头匹配 (startsWith)

Prefix
方法可让您根据字符串的开头进行匹配。这 以下搜索与标题为 FindFind rock! 的博客文章相匹配,但是 不是 findFindingHello Find

var searchQuery = client.Search<BlogPost>().Filter(x =>
x.Title.Prefix("Find"));

使用

PrefixCaseInsensitive
方法按 a 的开头进行匹配 字符串以不区分大小写的方式。以下搜索匹配博客 标题为 FindFind rock!Find 的帖子,但不是 FindingHello Find

var searchQuery = client.Search<BlogPost>().Filter(x =>
x.Title.PrefixCaseInsensitive("Find"));

来源:https://docs.developers.optimizely.com/digital-experience-platform/v1.1.0-search-and-navigation/docs/strings#matching-by-beginning-of-a-string-startswith

© www.soinside.com 2019 - 2024. All rights reserved.