elasticsearch 使用Nest Client在Elasticsearch中加载完成字段,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch 使用Nest Client在Elasticsearch中加载完成字段,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch 使用Nest Client在Elasticsearch中加载完成字段

elasticsearch 使用Nest Client在Elasticsearch中加载完成字段,elasticsearch,nest,elasticsearch,Nest,我想使用Nest将完成建议字段填充到索引中。阅读本文后,我发现您可以具有以下属性: 输入数组 单输出 重量 有效载荷 我假设要将这些数据加载到索引中,我需要在我的搜索对象中包含一个包含上述字段的实体 通过创建几个类,并遵循单元测试,特别是以下部分,我最终能够加载completion字段: .Completion(s=>s .Name(p=>p.Name.Suffix("completion"))

我想使用Nest将完成建议字段填充到索引中。阅读本文后,我发现您可以具有以下属性:

  • 输入数组
  • 单输出
  • 重量
  • 有效载荷

我假设要将这些数据加载到索引中,我需要在我的搜索对象中包含一个包含上述字段的实体

通过创建几个类,并遵循单元测试,特别是以下部分,我最终能够加载completion字段:

                    .Completion(s=>s
                    .Name(p=>p.Name.Suffix("completion"))
                    .IndexAnalyzer("standard")
                    .SearchAnalyzer("standard")
                    .MaxInputLength(20)
                    .Payloads()
                    .PreservePositionIncrements()
                    .PreserveSeparators()
                )
对于我的搜索类型实体,我创建了一个名为suggest的字段,并将其设置为CompletionField类型

 public class CompletionField
{
    public CompletionField()
    {
        Input = new List<string>();
    }

    public List<string> Input { get; set; }
    //public string Output { get; set; }
    public int Weight { get; set; }
    public Payload Payload { get; set; }
}

public class Payload
{
    public int ID { get; set; }
}
公共类完成字段
{
公共完成字段()
{
输入=新列表();
}
公共列表输入{get;set;}
//公共字符串输出{get;set;}
公共整数权重{get;set;}
公共有效负载{get;set;}
}
公共类有效载荷
{
公共int ID{get;set;}
}

在使用dapper从db加载实体后,我将结果循环,并用我想要的适当输入加载完成字段。然后,我成功地调用了建议API并查询了这些数据。我希望这能帮助其他人。

和你有同样的问题。你是如何索引这些对象的?你能发布你的索引查询和搜索查询吗?谢谢你的样品看起来很不相关。我找不到任何联系。索引完成时,您没有将其类型定义为CompletionField。您使用completionField的目的是什么?我想你是想或者你应该做这样的事