Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/installation/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ravendb 带boost的索引-如何执行BeginsWith查询_Ravendb - Fatal编程技术网

Ravendb 带boost的索引-如何执行BeginsWith查询

Ravendb 带boost的索引-如何执行BeginsWith查询,ravendb,Ravendb,我有一个学生 public class Student { public string Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public DateTime DateOfBirth { get; set; } } 我有一个索引Student_ByName,它增强了FirstName属性,定义为 public class

我有一个学生

public class Student
{
    public string Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime DateOfBirth { get; set; }
}
我有一个索引Student_ByName,它增强了FirstName属性,定义为

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
                                     };
    }
}
那么下面的查询不会将David是第一个名字的行提升到列表的顶部

var students = _session.Query<Domain.Student, Student_ByName>()
                       .Where(s => s.FirstName.StartsWith('David') || 
                                   s.LastName.StartsWith('David'))
                       .ToList();

我的问题是,在进行BeginsWith搜索时,如何提高FirstName的性能。

这是预期的,请参见此处的说明:

您可以通过查询时间(vs索引时间)评分来完成此操作,方法是:

var students = session.Advanced.LuceneQuery<Student>()
    .WhereStartsWith("FirstName", "David").Boost(3)
    .WhereStartsWith("LastName", "David")
    .ToList();
var students=session.Advanced.LuceneQuery()
.WhereStartsWith(“名字”,“大卫”)。Boost(3)
.WhereStartsWith(“姓氏”、“大卫”)
.ToList();

这是预期的,请参见此处的说明:

您可以通过查询时间(vs索引时间)评分来完成此操作,方法是:

var students = session.Advanced.LuceneQuery<Student>()
    .WhereStartsWith("FirstName", "David").Boost(3)
    .WhereStartsWith("LastName", "David")
    .ToList();
var students=session.Advanced.LuceneQuery()
.WhereStartsWith(“名字”,“大卫”)。Boost(3)
.WhereStartsWith(“姓氏”、“大卫”)
.ToList();
var students = session.Advanced.LuceneQuery<Student>()
    .WhereStartsWith("FirstName", "David").Boost(3)
    .WhereStartsWith("LastName", "David")
    .ToList();