2017-12-07 2 views
3

Apache Ignite .NET 2.3.0を使用する Linq拡張(Apache.Ignite.Linq)を使用して検索しようとしています。Apache Ignite.NET SQLが英語以外の文字を検索しない

構成:

 CacheConfiguration = new[] 
    { 
     new CacheConfiguration 
     { 
      QueryEntities = new [] 
      { 
        new QueryEntity(typeof(string), typeof(SecuritiesItem)) 
        { 
         Fields = new [] 
         { 
          new QueryField { Name = "SearchString", FieldType = typeof(string)} 
         } 
        } 
      } 
     } 
    } 

SecuritiesItem定義:

public class SecuritiesItem 
{ 
    /* all other fields */ 

    public string ShortName { get; set; } 
    public string SearchString { get; set; } 
} 

検索文字列は、検索に使用するには何が必要すべてのフィールドからマージされたデータが含まれています。このように:

Открытоеакционерноеобщество "Рогаикопыта " #☢#システムズオープン合資会社#☢#ОАО "РиК" #☢#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のようにオブジェクト内の特定のフィールドで検索しようとすると、同じ結果になります。テキストを特定のエンコーディングに変換する必要がありますか?

それは郵便配達のせいです

をSelfResolved。 https://github.com/postmanlabs/postman-app-support/issues/2263 URLエンコードのバグ。

答えて

5

サンプルプロジェクト再生プログラムを共有できますか?

いくつかのテストを更新しましたが、同様のケースで正常に動作します。私はエンコーディングを変更せず、テキストを特定のエンコーディングに変換しませんでした。デフォルトではUTF-8です。

+0

郵便配達不一致です。 https://github.com/postmanlabs/postman-app-support/issues/2263 URLエンコーディングのバグ。 – aleha

関連する問題