elasticsearch,vector,nest,term,C#,elasticsearch,Vector,Nest,Term" /> elasticsearch,vector,nest,term,C#,elasticsearch,Vector,Nest,Term" />

C# 如何在elasticsearch嵌套中使用MultiTermVectors函数

C# 如何在elasticsearch嵌套中使用MultiTermVectors函数,c#,elasticsearch,vector,nest,term,C#,elasticsearch,Vector,Nest,Term,全部, 我在elasticsearch中索引了许多xml文件,以索引新闻并键入reuters。然后我可以使用 var termvecResponse = Client.TermVectors<reuters>(t => t.Index("news").Id(1).TermStatistics().Fields(f => f.Body)); var-termvecResponse=Client.TermVectors(t=>t.Index(“news”).Id(1).Te

全部,

我在elasticsearch中索引了许多xml文件,以索引新闻并键入reuters。然后我可以使用

var termvecResponse = Client.TermVectors<reuters>(t => t.Index("news").Id(1).TermStatistics().Fields(f => f.Body));
var-termvecResponse=Client.TermVectors(t=>t.Index(“news”).Id(1).TermStatistics().Fields(f=>f.Body));
获取第一个文档的术语向量。我的问题是我如何使用这个电话

Client.MultiTermVectors<reuters>
Client.multi术语向量
我试过了

var idRange = Enumerable.Range(1, 10);

        var tvecR = Client.MultiTermVectors(new MultiTermVectorsRequest(typeof(reuters))
        {
            Documents = idRange.Select(n => new MultiTermVectorOperation<reuters>(n)
            {
                Type=typeof(reuters),
                FieldStatistics = false,
                Payloads = false,
                TermStatistics = true,
                Positions = false,
                Offsets = false
            })
        });
var idRange=Enumerable.Range(1,10);
var tvecR=Client.multitermVector(新的multitermVector请求(typeof(路透社))
{
Documents=idRange.Select(n=>new MultiTermVectorOperation(n)
{
类型=类型(路透社),
FieldStatistics=false,
有效载荷=假,
TermStatistics=true,
位置=假,
偏移量=假
})
});
它返回空项向量,响应对象说POST调用是在/news/\u mtermvectors上,而不是在/news/reuters/\u mtermvectors上。有什么想法吗?谢谢你的帮助

低级别解决方案: 如果有人需要,可以使用下面的低级调用

string sbRequestBody = "{\"ids\":[\"1\", \"2\"],\"parameters\":{\"fields\": [\"body\"],\"term_statistics\":true}}";         
var termvecResponse =Client.LowLevel.Mtermvectors<MultiTermVectorsResponse>("news", "reuters", sbRequestBody);
string sbRequestBody = "{\"ids\":[\"1\", \"2\"],\"parameters\":{\"fields\": [\"body\"],\"term_statistics\":true}}";         
var termvecResponse =Client.LowLevel.Mtermvectors<MultiTermVectorsResponse>("news", "reuters", sbRequestBody);
string sbRequestBody=“{\'ids\':[\'1\',\'2\'],\'parameters\':{\'fields\':[\'body\'],\'term\u statistics\':true}}”;
var termvecResponse=Client.LowLevel.mtermVector(“新闻”、“路透社”、sbRequestBody);

您在多术语向量请求上提供给
documents
属性的文档不像单个调用那样包含术语统计的目标字段。如果所有文档都指向相同的字段,则可以使用

var tvecR = client.MultiTermVectors(new MultiTermVectorsRequest("news", typeof(reuters))
{
    Fields = Infer.Fields<reuters>(f => f.Body), // all docs will use these fields
    Documents = idRange.Select(n => new MultiTermVectorOperation<reuters>(n)
    {
        TermStatistics = true
    })
});
var tvecR=client.multitermVector(新的multitermVector请求(“新闻”,typeof(路透社))
{
Fields=expert.Fields(f=>f.Body),//所有文档都将使用这些字段
Documents=idRange.Select(n=>new MultiTermVectorOperation(n)
{
TermStatistics=true
})
});

这里的请求将针对
/news/reuters/\u mtermvectors?fields=summary

低级别解决方案:如果有人需要,使用下面这样的低级别调用

string sbRequestBody = "{\"ids\":[\"1\", \"2\"],\"parameters\":{\"fields\": [\"body\"],\"term_statistics\":true}}";         
var termvecResponse =Client.LowLevel.Mtermvectors<MultiTermVectorsResponse>("news", "reuters", sbRequestBody);
string sbRequestBody = "{\"ids\":[\"1\", \"2\"],\"parameters\":{\"fields\": [\"body\"],\"term_statistics\":true}}";         
var termvecResponse =Client.LowLevel.Mtermvectors<MultiTermVectorsResponse>("news", "reuters", sbRequestBody);
string sbRequestBody=“{\'ids\':[\'1\',\'2\'],\'parameters\':{\'fields\':[\'body\'],\'term\u statistics\':true}}”;
var termvecResponse=Client.LowLevel.mtermVector(“新闻”、“路透社”、sbRequestBody);