使用 Apache Ignite .NET 2.3.0
尝试使用 Linq 扩展 (Apache.Ignite.Linq) 进行搜索。
配置:
CacheConfiguration = new[]
{
new CacheConfiguration
{
QueryEntities = new []
{
new QueryEntity(typeof(string), typeof(SecuritiesItem))
{
Fields = new []
{
new QueryField { Name = "SearchString", FieldType = typeof(string)}
}
}
}
}
}
证券项目定义:
public class SecuritiesItem
{
/* all other fields */
public string ShortName { get; set; }
public string SearchString { get; set; }
}
SearchString 包含搜索中需要使用的所有字段的合并数据。像这样:
Открытое акционерное общество "Рога и копыта
“#☢#系统开放式股份公司#☢#ОАО
"РиК"#☢#Ssys#☢#335468321#☢#bner#☢#ОАО "РиК"#☢#
系统开放式股份公司#☢#Открытое акционерное
общество "Рога и копыта"#☢#Systems
开放式股份公司#☢#RU003572593#☢#1-22-22222-A
像这样搜索:
_securitiesCache
.AsCacheQueryable()
.Where(s => s.Value.SearchString.Contains(query))
// or .Where(s => s.Value.SearchString.ToLower().IndexOf(query) != -1)
.ToArray()
.Select(x => x.Value);
所以,如果我搜索“打开” - 它会正常找到一切。但如果我搜索“Откр”,则找不到结果。
尝试按对象中的特定字段进行搜索,例如使用“==”的 ShortName,结果相同。我应该将文本转换为特定的编码吗?
自我解决
这是邮递员的错。https://github.com/postmanlabs/postman-app-support/issues/2263 https://github.com/postmanlabs/postman-app-support/issues/2263url 编码中的错误。