C# 如何在elasticsearch嵌套中使用MultiTermVectors函数
全部, 我在elasticsearch中索引了许多xml文件,以索引新闻并键入reuters。然后我可以使用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
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);