gpt4 book ai didi

c# - 在 NEST 中搜索没有类型特定类的特定查询(TermsQuery)

转载 作者:太空宇宙 更新时间:2023-11-03 22:47:49 25 4
gpt4 key购买 nike

第一次使用 ElasticSearch(使用 NEST 作为包装器)。我想在外部 ElasticSearch 数据库中搜索。

我只想对名为 cvrNummer 的特定字段运行测试查询.我有以下代码,它无法编译,因为:The type arguments for method 'ElasticSearch.Search<T> .. ', cannot be inferred from the usage.

我想这是因为我无法指定特定于类型的类。挑战是我不知道那个。

我的问题是:我如何运行下面的查询,却不知道我得到了什么(以制作特定类型的模型)?如果我需要那个模型,当缺少文档时我该如何“制作”那个模型?

我的代码:

        var settings = new ConnectionSettings(new Uri(_path)).
BasicAuthentication(_username,_password);

var client = new ElasticClient(settings);

var es_query = new TermsQuery
{
Name = "named_query",
Boost = 1.1,
Field = "cvrNummer",
Terms = new string[] { "36406208" }
};

client.Search(es_query);

只有我拥有的文档:

curl -u "<brugernavn>:<password>" -XPOST http://URL -d'
{ "from" : 0, "size" : 1,
"query": {
"term": {
"cvrNummer": VALUE
}
}
}

编辑更多数据:

来自文档的文档模型:

curl -u "<brugernavn>:<password>" -XGET http://distribution.virk.dk/cvr-permanent/_mapping

完整搜索示例:

curl -u "<brugernavn>:<password>" -XPOST http://distribution.virk.dk/cvr-permanent/_search -d'
{ "from" : 0, "size" : 1,
"query": {
"term": {
"cvrNummer": 10961211
}
}
}
'

最佳答案

您可以将“文档”curl 请求转换为 C# api 语法,如下所示:

client.Search<dynamic>(s => s //dynamic because you don't know the structure
.From(0)
.Size(1)
.Index("cvr-permanent") // index you are searching, taken from url of curl
.AllTypes() // search all types in that index
.Query(q => q.Terms(t =>
t.Name("named_query")
.Boost(1.1f)
.Field("cvrNummer")
.Terms("36406208"))));

如果您不喜欢 dynamic - 您可以使用 JObject,如果您使用 Search,它将是返回的真实类型 动态:

var response = client.Search<JObject>(...);

然后您可以像这样访问匹配的文档:

foreach (var document in result.Documents) {
// if you used `JObject`:
Console.WriteLine(document["account_number"]);
// if you used `dynamic`:
Console.WriteLine(document.account_number);
}

如果您使用了 JObject,您还可以在生成的 JObject 上调用 ToString()(因此,document.ToString() 在上面的示例中)查看返回文档的完整 json,以便您了解其结构。

关于c# - 在 NEST 中搜索没有类型特定类的特定查询(TermsQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49094828/

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