elasticsearch ElasticSearch的NEST TermQuery不工作,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch ElasticSearch的NEST TermQuery不工作,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch ElasticSearch的NEST TermQuery不工作

elasticsearch ElasticSearch的NEST TermQuery不工作,elasticsearch,nest,elasticsearch,Nest,给定 以下使用NEST的lambda查询可以正常工作: string author = "John Smith"; 但是,使用OIS对象初始值设定项语法的同一查询不起作用: string firstname = author.Split().First().ToLower(); var searchResults = client.Search<Magazine>(s => s.From(0).Size(5000).Query(q => q.Term(p => p

给定

以下使用NEST的lambda查询可以正常工作:

string author = "John Smith";
但是,使用OIS对象初始值设定项语法的同一查询不起作用:

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

向QueryContainer添加关键字后缀:

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); 
试试看,会有用的

这应该对你有帮助
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);