ドキュメントエンティティStudentがあります
public class Student
{
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
}
FirstNameプロパティをブーストしたStudent_ByNameというインデックスがあります。
public class Student_ByName : AbstractIndexCreationTask<Domain.Student>
{
public Student_ByName()
{
Map = students => from s in students
select new
{
FirstName = s.FirstName.Boost(6),
s.LastName,
s.DateOfBirth,
s.Gender
};
}
}
次の学生ドキュメントインスタンスがあります
{ FirstName: 'David', LastName: 'Globe', DateOfBirth: '02/04/2000' }
{ FirstName: 'Tyson', LastName: 'David', DateOfBirth: '23/10/2000' }
{ FirstName: 'David', LastName: 'James', DateOfBirth: '19/05/1996' }
次に、以下のクエリは、Davidがリストの一番上にある名である行をプロモートしません。
var students = _session.Query<Domain.Student, Student_ByName>()
.Where(s => s.FirstName.StartsWith('David') ||
s.LastName.StartsWith('David'))
.ToList();
Where句を変更して等しいかどうかを確認すると、Davidが名の行がリストの一番上に昇格します。
.Where(s => s.FirstName == 'David' || s.LastName == 'David')
.ToList();
私の質問は、BeginsWith検索を実行するときにFirstNameのブーストを機能させるにはどうすればよいかということです。