【发布时间】:2020-04-23 09:50:28
【问题描述】:
我有一个在 C# 中搜索的方法如下:
public void Search(string data)
{
var searchResponse = client.Search<Products>(s => s
.From(0)
.Size(100)
.Query(q => q
.Match(m => m
.Field( f => f.ProductName)
.Query(data))));
int cnt = searchResponse.Documents.Count;
}
这返回了 5 个文档,这是有效的。
但是,我想把上面的方法修改如下,这样我就可以动态传递要搜索的字段了。
public void Search(string data,string fieldName)
{
var searchResponse = client.Search<Products>(s => s
.From(0)
.Size(100)
.Query(q => q
.Match(m => m
.Field(fieldName)
.Query(data))));
int cnt = searchResponse.Documents.Count;
}
上面的代码确实返回了任何错误,但是返回了 0 个文档。
这里我将ProductName 传递给fieldName 参数。我知道这行不通。我只想在这里说出我的意图。
【问题讨论】:
标签: elasticsearch search dynamic field