2017-09-19 5 views
0

ElasticSearch .NETとの統合が初めてです。私は私の索引データを検索しています(私は10000以上のレコードを索引付けしていますが、検索しているときに検索された値ですべてのレコードが開始されるので、10000レコードがすべて来なければ最大250レコードしか得られません)Elastic Search一致するすべてのドキュメントの合計数のクエリ

私が書いたクエリ:

string UniqueID ='h'; 
var result = client.Search<MemberListDto>(s => s 
        .Query(q => 
           q.MatchPhrasePrefix((mq => mq.Field(f => f.UniqueID).Query(UniqueID))) 
         )); 

      return result.Total; 

注:すべての一意IDの値が「H」で始まると、私は唯一の一意ID =「h」を与えている私を助けてください

、私はすべての10000を得ることができる方法。クエリ期間値を満たしている場合はレコード数がカウントされます。

ここ

は、私は、インデックスにしようとしている私のPOCO C#クラスのオブジェクトである:ここで

public class MemberListDto 
{ 

    [String(Analyzer = "keyword", SearchAnalyzer = "keyword")] 
    public string UniqueID { get; set; } 
    [String(Analyzer ="keyword",SearchAnalyzer ="keyword")] 
    public string Name{ get; set; } 

}

は私がMemberListDtoオブジェクトのリストの大半インデックスをやろうとしています汎用コードです:

public void CreateBulkIndex<T>(List<T> data, string indexName, string typeName) where T : class 
    { 

     if (!_client.IndexExists(ElasticConfig.IndexName).Exists) 
     { 
      var indexDescriptor = new CreateIndexDescriptor(ElasticConfig.IndexName) 
       .Mappings(ms => ms 
        .Map<T>(m => m.AutoMap())); 

      _client.CreateIndex(ElasticConfig.IndexName, i => indexDescriptor); 
     } 
     _client.Bulk(b => b.IndexMany(data, (d, doc) => d.Document(doc).Index(indexName))); 

    } 
+0

再確認するだけですが、クエリごとに来るはずの文書を投稿してください。 – Richa

+0

私は10000 MemberListDto(UniqueID、...)オブジェクトとすべての10000レコードのインデックスを付けましたUniqueID値は、いくつかの整数の後に 'h'で始まります。だから私は 'h'を検索しようとしているとき、合計数は常に250です。私はまた、10000以上のレコードのインデックスを作成しようとしました、その場合にも、それは合計250を与えています。 –

+0

より完全な例を表示できますか?あなたの質問には、問題を識別するのに十分な情報がありません。たとえば、POCOの外観、マッピング方法、ドキュメントのインデックス作成方法、カウントの実行時期など –

答えて

0

Sizeを呼び出してサイズを設定してみてください。応答文書のデフォルトのnoを取得しています。 サイズを設定する方法についてthis on Elasticを参照してください

+0

私もこのようにSizeを試しました:string UniqueID = 'h'; var result = client.Search (s => s.Size(10000) .Query(q => q.MatchPhrasePrefix(mq => mq.Field(f => f.UniqueID).QueryユニークID)))) )); 返品結果。合計; –

+0

まだ、私は250レコードしか得ていません。 –

+0

これは間違っています。 'total'はクエリと一致する文書の総数になります。 –

関連する問題