尝试这个:
var searchResults2 = client.Search<File>(s => s
.Query(q => q
.Term(p => p.Field(r => r.fileContents).Value("int")
)
));
跟进:
RequestInformation
在较新版本的 NEST 中不可用。
- 我建议逐步分解您的代码(不要直接在 client.Search() 方法中构建查询。
client.Search()Func<SearchDescriptor<T>, ISearchRequest>
作为输入(参数)。
我在类似帖子中的回答:
SearchDescriptor<T> sd = new SearchDescriptor<T>()
.From(0).Size(100)
.Query(q => q
.Bool(t => t
.Must(u => u
.Bool(v => v
.Should(
...
)
)
)
)
);
并得到这样的反序列化 JSON:
{
"from": 0,
"size": 100,
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
...
]
}
}
]
}
}
}
这很烦人,NEST 库应该有一些东西可以从请求中吐出 JSON。然而,这对我有用:
using (MemoryStream mStream = new MemoryStream()) {
client.Serializer.Serialize(sd, mStream);
Console.WriteLine(Encoding.ASCII.GetString(mStream.ToArray()));
}
NEST 库版本:2.0.0.0。较新的版本可能有更简单的方法来获得这个(希望如此)。