我正在索引以下Document类以进行索引:
public class DoctorDocument
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public int Experience { get; set; }
}
我正在使用以下代码搜索索引。
var node = new Uri("http://localhost:9200");
var settings = new ConnectionSettings(
node,
defaultIndex: "my-application"
);
var client = new ElasticClient(settings);
var searchResults = client.Search<DoctorDocument>(s => s.From(0)
.Size(100)
.Query(q =>
q.Term(t => t.Name, "Deepak Singhal"))
);
由于某种原因,即使索引中有一个名称“Deepak Singhal”,searchResults也不会返回任何文档。为何没有返回任何指示?
最佳答案
正如@Manolis在评论中指出的那样,Term描述符不适用于空格。字段名称上的MatchQueryDescriptor对我来说效果很好。
var searchResults = client.Search<DoctorDocument>(s => s.From(0)
.Size(100)
.Query(q =>
q.Match(mqd => mqd.OnField("name").Query("Deepak Singhal"))
));