我在elasticsearch中索引了许多xml文件,以索引新闻并键入路透社。然后我可以用
var termvecResponse = Client.TermVectors<reuters>(t => t.Index("news").Id(1).TermStatistics().Fields(f => f.Body));以获得第一个文档的术语向量。我的问题是我如何使用这个电话?
Client.MultiTermVectors<reuters>我试过了
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
})
});它返回空的术语向量,响应对象说POST调用是on /news/_mtermvectors,而不是/news/reuters/_mtermvectors,有什么想法吗?谢谢你的帮助。
低级别解决方案:如果有人需要,请像下面这样使用低级调用。
string sbRequestBody = "{\"ids\":[\"1\", \"2\"],\"parameters\":{\"fields\": [\"body\"],\"term_statistics\":true}}";
var termvecResponse =Client.LowLevel.Mtermvectors<MultiTermVectorsResponse>("news", "reuters", sbRequestBody);发布于 2017-08-12 08:44:40
在多项向量请求中向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
})
});这里的请求将违背/news/reuters/_mtermvectors?fields=summary
发布于 2017-08-13 16:35:46
低级别解决方案:如果有人需要,请像下面这样使用低级调用。
string sbRequestBody = "{\"ids\":[\"1\", \"2\"],\"parameters\":{\"fields\": [\"body\"],\"term_statistics\":true}}";
var termvecResponse =Client.LowLevel.Mtermvectors<MultiTermVectorsResponse>("news", "reuters", sbRequestBody);https://stackoverflow.com/questions/45602236
复制相似问题