elasticsearch,C#,elasticsearch" /> elasticsearch,C#,elasticsearch" />

Elasticsearch低级客户端-如何将C#变量添加到搜索查询中

Elasticsearch低级客户端-如何将C#变量添加到搜索查询中,c#,elasticsearch,C#,elasticsearch,我使用的是如下所示的查询,但是无论我如何尝试,我都无法将字符串变量插入查询字符串(字符串变量为“searchString”)。它就是无法编译 我尝试过各种插入字符串变量的建议,但都不适合我 var searchResponse = await _elasticLowLevelClient.SearchAsync<StringResponse>("webapp-razor-*", @" { ""from

我使用的是如下所示的查询,但是无论我如何尝试,我都无法将字符串变量插入查询字符串(字符串变量为“searchString”)。它就是无法编译

我尝试过各种插入字符串变量的建议,但都不适合我

    var searchResponse = await _elasticLowLevelClient.SearchAsync<StringResponse>("webapp-razor-*", @"
    {
         ""from"": 0,
         ""size"": 10,
         ""query"": {
             ""match"": {
                 ""_metadata.log_event_type"": {
                     ""query"": """ + searchString + """
                     }
             }
          }
    }"); 
var searchResponse=wait_elasticLowLevelClient.SearchAsync(“webapp razor-*”,@”
{
“”自“”:0,
“尺寸”:10,
“查询”:{
“匹配”:{
“”\u元数据.日志\u事件\u类型“”:{
“”查询“”:“”“+搜索字符串+“””
}
}
}
}"); 

弹性文件中的上述方法:


要找到这个问题的答案真是一场马拉松

这里我们要处理的是知道如何将变量插入字符串文本,这本质上就是查询体。下面的SO帖子帮助我解决了这个问题:

根据我在原始问题中展示的方法,我将查询主体重新写入一行:

var vertabimString = @"{ ""from"": 0, ""size"": 10, ""query"": { ""match"": { ""_metadata.log_event_type"": { ""query"": """ + searchString + @"""}}}}";
var searchResponse = await _elasticLowLevelClient.SearchAsync<StringResponse>("webapp-razor-*", vertabimString);
var vertabimString=@“{”from”“:0”,“size”“:10”,“query”“:{”“match”“:{”“\u metadata.log\u event\u type”“:{”“query”“:“+searchString+@”“”}}}”;
var searchResponse=wait _elasticLowLevelClient.SearchAsync(“webapp razor-*”,vertabimString);
我现在可以运行查询并返回所需的结果。因此,我遇到的问题与使用弹性低级客户机无关,而更多的是由于尝试使用具有灵活性的低级客户机来使用混合中的字符串变量构建我自己的查询

希望这能避免别人把头发扯下来,因为我一根也没有了