使用.Net客户端嵌套的MultiTermVectorsRequest

问题描述 投票:0回答:1

全部,从这里的文档https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-multi-termvectors.html我看到有多种方式来提出请求。

我可以将POST / _mtermvectors作为

MultiTermVectorsRequest tvr = new MultiTermVectorsRequest()
{               
    Documents = Enumerable.Range(1,2).Select(n => new MultiTermVectorOperation<Tweet>(n)
    {
        StoredFields = new [] {"message"}, 
        Index = "twitter",
        FieldStatistics = false,
        TermStatistics = true,
        Positions = false,
        Offsets = false
    })
};

它看起来像

{
  "docs": [
    {
      "_index": "twitter",
      "_type": "tweet",
      "_id": 1,
      "fields": [
        "message"
      ],
      "offsets": false,
      "positions": false,
      "term_statistics": true,
      "field_statistics": false
    },
    {
      "_index": "twitter",
      "_type": "tweet",
      "_id": 2,
      "fields": [
        "message"
      ],
      "offsets": false,
      "positions": false,
      "term_statistics": true,
      "field_statistics": false
    }
  ]
}

我的问题是我如何将请求更改为POST / twitter / tweet / _mtermvectors所以它看起来像

{
    "ids" : ["1", "2"],
    "parameters": {
        "fields": [
                "message"
        ],
        "term_statistics": true
    }
}

我希望它是一个单独的请求,将id指定为字符串数组,以减少请求的大小。另外,我如何在此请求中添加min_doc_frequency等过滤器?

谢谢您的帮助。

c# elasticsearch vector nest term
1个回答
0
投票

高级客户端不支持包含"ids""parameters"的格式。可以通过低级客户端发送它,然后返回高级响应

var response = client.LowLevel.Mtermvectors<MultiTermVectorsResponse>(
    "twitter", 
    "tweet", 
    new 
    {
        ids = new [] { "1", "2" },
        parameters = new 
        {
            fields = new [] { "message" },
            term_statistics = true
        }
    });

var highLevelResponse = response.Body;
© www.soinside.com 2019 - 2024. All rights reserved.