Использование 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 # ☢ # ОАО "РиК" # ☢ # Открытое акционерное общество "Системы" Акционерное общество # ☢ # Открытое акционерное общество "Рога и копыта" # ☢ # Открытое акционерное общество "Системы" # ☢ # 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 ошибка в кодировке URL.