ブール値フラグに基づいて、時間間隔でドキュメントの検索を行う関数があり、NESTクエリは異なる場合がありますLessThanOrEqual if文と他のステートメントのより少ない私はブールフラグを使用して、このNESTクエリを動的にすることができますどのように「includeEnd」私はif文を使用する必要がないようにNESTの動的弾性検索クエリの作成方法C#
public IEnumerable<Book> GetBooks(DateTime startTime, DateTime endTime, string author, bool includeEnd)
{
var readRecords;
if (includeEnd){
readRecords = elastic.Search<Book>(s => s.Index(IndexName)
.Query(q => q.Term(book => book.Author, author) &&
q.DateRange(i => i.Field(book => book.Author)
.GreaterThanOrEquals(startTime)
.LessThanOrEquals(endTime)))).Documents.ToArray();
}
else{
readRecords = elastic.Search<Book>(s => s.Index(IndexName)
.Query(q => q.Term(book => book.Author, author) &&
q.DateRange(i => i.Field(book => book.Author)
.GreaterThanOrEquals(startTime)
.LessThan(endTime)))).Documents.ToArray();
}
return readRecords;
}
?
ifステートメントでは、日付範囲クエリにNESTクエリで "LessThanOrEqual"を使用して終了時間を指定し、elseステートメントではNESTクエリでLessThanのみを使用して終了時間を除外します。 –