NEST TermQuery for ElasticSearch无法正常工作

时间:2015-04-02 09:26:07

标签: elasticsearch nest

给出

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);

有什么问题?

2 个答案:

答案 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); 

尝试它会起作用

相关问题