【发布时间】:2021-08-03 13:18:13
【问题描述】:
我正在向 JSON 对象添加 ElasticSearch 查询语法并传递参数并构建实际的查询字符串。
我正在使用GetElasticSearchQuery 方法来构建所需的查询并且它工作正常。
我的问题是如何将这个查询字符串直接更新到 ElasticSearch 客户端。我尝试了几个选项来传递构建查询。但它不起作用。有没有办法在 Nest 客户端中使用 buildquery 作为参数。 如何更新 ElasticSearch 客户端以使用该构建查询?
提前致谢
我已经尝试了如下代码:
public static void Main(string[] args)
{
Program P = new Program();
string elasticSearchJson = P.GetElasticSearchQuery("Sales.State: CA");
Console.WriteLine(elasticSearchJson);
string jobcount = P.JobCount(elasticSearchJson);
}
public string GetElasticSearchQuery(string filter)
{
string elasticSearchQuery = File.ReadAllText("ESCountQuery.json");
dynamic workableElasticSearchQuery = JsonConvert.DeserializeObject(elasticSearchQuery);
workableElasticSearchQuery.query.query_string.query = filter;
return workableElasticSearchQuery.ToString();
}
public string JobCount(string elasticSearchJson)
{
var settings = new ConnectionSettings(new Uri("xxx")).DefaultIndex("xxx");
var client = new ElasticClient(settings);
var searchRequest = new SearchRequest<string>
{
Query = elasticSearchJson
};
}
【问题讨论】: