给出
string author = "John Smith";
以下使用NEST的lambda查询有效:
string firstname = author.Split().First().ToLower();
var searchResults = client.Search<Magazine>(s => s.From(0).Size(5000).Query(q => q.Term(p => p.Author, author)));
但是,使用OIS(对象初始化程序语法)的相同查询不起作用:
author = author.Split().First().ToLower();
QueryContainer query = new TermQuery
{
Field = "Author",
Value = author
};
var searchRequest = new SearchRequest
{
From = 0,
Size = 10,
Query = query
};
var searchResults = client.Search<Magazine>(searchRequest);
有什么问题?
答案 0 :(得分:0)
尝试驼峰套管字段名称: - 我认为在使用OIS语法或原始查询时需要这样做。
{{1}}
答案 1 :(得分:0)
在QueryContainer中添加“关键字”后缀:
QueryContainer query = new TermQuery
{
Field = "Author",
Value = author
};
query.Suffix("keyword");
var searchRequest = new SearchRequest
{
From = 0,
Size = 10,
Query = query
};
var searchResults = client.Search<Magazine>(searchRequest);
尝试它会起作用