該文檔似乎表明我可以返回字段的子集而不是整個文檔。這裏是我的代碼:加載Elasticsearch Nest中的特定字段查詢
var result = client.Search<MyObject>(s => s
.Fields(f => f.Title)
.Query(q => q
.QueryString(qs => qs
.OnField("title")
.Query("the"))));
我尋找這個詞「的」的「標題」字段,並希望只返回「標題」。我的result.Documents對象包含10個空對象。
我看到我想要的值,但它在搜索響應深: result.Hits [0] .Fields.FieldValues [0] ...
有沒有更好的方式來獲得在「標題」字段列表已返回?
我的數據(截)映射是這樣的......
{
"myidex": {
"mappings": {
"myobject": {
"properties": {
"title": {
"type": "string"
},
"artists": {
"properties": {
"id": {
"type": "string",
"index": "not_analyzed",
"analyzer": "fullTerm"
},
"name": {
"type": "string",
"index": "not_analyzed",
"analyzer": "fullTerm"
}
}
}
}
}
}
}
}
和我的類對象是這樣的:
[Table("MyTable")]
[Serializable]
[ElasticType(Name="myobject")]
public class MyObject
{
[ElasticProperty]
public string Title { get; set; }
[JsonIgnore]
public string Artistslist { get; set; }
[ElasticProperty(Analyzer = "caseInsensitive")]
public List<Person> Artists { get; set; }
}
[Serializable]
public class Person
{
[ElasticProperty(Analyzer = "fullTerm", Index = FieldIndexOption.not_analyzed)]
public string Name { get; set; }
[ElasticProperty(Analyzer = "fullTerm", Index = FieldIndexOption.not_analyzed)]
public string Id { get; set; }
}
Artistslist來自我的數據源(SQL),那麼在索引數據之前,我將它解析爲一個新的List對象。
您使用的是哪個版本的NEST? –
預發佈版本的nest和elasticsearch.net(通過nuget)。我相信它是1.0.0 beta1 – bigerock
如果您的'result.Documents'對象爲空,則可能是映射問題。你可以將MyObject類的定義添加到問題中。 –