gpt4 book ai didi

elasticsearch - 使用动态字段名称搜索ElasticSearch

转载 作者:行者123 更新时间:2023-12-02 23:45:41 25 4
gpt4 key购买 nike

我有一种在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参数。我知道这行不通。我只想在这里告诉我我的意图。

最佳答案

Field Infering

您可以将下面的内容传递给您的查询

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

关于elasticsearch - 使用动态字段名称搜索ElasticSearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61384219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com