我有如下方法在C#中进行搜索:
公共无效搜索(字符串数据)
{
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个文档。
但是,我想按如下方式修改上述方法,以便可以传递要动态搜索的字段。
公共无效搜索(字符串数据,字符串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”参数。我知道这行不通。我只想在这里告诉我的意图。
您可以在下面传递给您的查询
var fieldString = new Field(“ fieldName”);
var fieldString = new Field("fieldName");
var searchResponse = _elasticClient.Search<AllOpportunitySearchResult>(s => s
.From(0)
.Size(100)
.Query(q => q
.Match(m => m
.Field(fieldString)
.Query(data)
)
)
);