gpt4 book ai didi

elasticsearch - MultiMatch的动态字段列表-Nest

转载 作者:行者123 更新时间:2023-12-03 00:47:13 25 4
gpt4 key购买 nike

我们需要搜索要查询可变/动态数量字段的文档类型。对于一种搜索/类型,它可能是名称和状态。另外,描述字段。用户将在运行时选择要搜索的字段。

静态地做到这一点看起来很容易。可以在“名称”和“描述”字段中进行搜索。 (假设rootQuery是准备好进行查询的有效searchDescriptor。

rootQuery.Query(q => q.MultiMatch(mm => mm.Query(filter.Value.ToString()).Fields(f => f.Field(ff => ff.Name).Field(ff => ff.Description))));

但是,我们不希望有一个静态查询库来处理可能的排列(如果可能)。我们宁愿做一些动态的事情,例如:
foreach (var field in string-list-of-fields-from-user)
{
rootQuery.Query(q => q.MultiMatch(mm => mm.Query(filter.Value.ToString()).Fields(f => f.Field(ff => field);
}

这可能吗?如果是这样,怎么办?

最佳答案

您可以将字段的string列表直接传递给.Fields(...)

var searchResponse = client.Search<Document>(s => s
.Query(q => q
.MultiMatch(mm => mm
.Query("query")
.Fields(new string[] { "field1", "field2", "field3" })
)
)
);

产生
{
"query": {
"multi_match": {
"fields": ["field1", "field2", "field3"],
"query": "query"
}
}
}

关于elasticsearch - MultiMatch的动态字段列表-Nest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58827534/

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