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)));
}
再確認するだけですが、クエリごとに来るはずの文書を投稿してください。 – Richa
私は10000 MemberListDto(UniqueID、...)オブジェクトとすべての10000レコードのインデックスを付けましたUniqueID値は、いくつかの整数の後に 'h'で始まります。だから私は 'h'を検索しようとしているとき、合計数は常に250です。私はまた、10000以上のレコードのインデックスを作成しようとしました、その場合にも、それは合計250を与えています。 –
より完全な例を表示できますか?あなたの質問には、問題を識別するのに十分な情報がありません。たとえば、POCOの外観、マッピング方法、ドキュメントのインデックス作成方法、カウントの実行時期など –