gpt4 book ai didi

c# - 使用.NET Core中的NEST对ElasticSearch中的嵌套集合执行查询

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

我试图对以下对象的索引执行搜索:

public class IndexedElement
{

public Guid Id { get; set; }
public long RowId { get; set; }
public IndexedElementType Type { get; set; }
public string Summary { get; set; }
public string Description { get; set; }

public IList<string> Tags { get; set; }

}

目的是通过Summary属性搜索,或通过匹配Tags集合内的任何字符串进行搜索

我目前所拥有的是:
    public IEnumerable<IndexedElement> Search(string description)
{
var query = GetClient().Search<IndexedElement>(s => s.From(0).Size(5)
.Query(
q => q.Term(p => p.Summary, description)
||
q.Nested(n => n.Path(p => p.Tags).Query(q2 => q2.Terms(t => t.Field(f => f.Tags).Terms(description))))
));

return query.Documents.ToList();
}

但是嵌套部分无法正常工作,我不知道我是否以正确的方式使用它,或者也许我必须为此找到另一个解决方案。

有任何想法吗?

谢谢大家

最佳答案

您不需要执行nested查询即可查询Tags字段,因为每个标签只是一个原始JSON值,即string。仅terms查询就足够了。

需要nested查询的地方是Tags是具有多个属性的POCO,并映射为nested数据类型。

关于c# - 使用.NET Core中的NEST对ElasticSearch中的嵌套集合执行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54896068/

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