C# - ElasticSearch LowLevel Search API для Raw Json Запрос - PullRequest
1 голос
/ 03 апреля 2020

Я использую ElasticSearch v6.4 с библиотеками Nest (v.6.4.2) и ElasticSearch. Net (v.6.4.2). Я пытаюсь использовать API поиска с моим запросом Raw Json.

Вот мой шаблон JSON Запрос:

    var jsonQuery  = @"{
      "_source": {
        "exclude": [],
        "include": []
      },
      "query": {
        "bool": {
          "should": [
            [
              { 
                "multi_match": {
                  "query": "*",
                  "analyzer": "standard",
                  "type": "most_fields",
                  "fields": []
                }
              },
              {
                "multi_match": {
                  "query": "*",
                  "analyzer": "standard",
                  "type": "most_fields",
                  "fuzziness": 1,
                  "prefix_length": 3,
                  "fields": []
                }
              }
            ]
          ],
          "filter": {
            "bool": {
              "must": [
                { "term": { "xx": "yy" } }
              ],
              "must_not": [],
              "should": [
                {
                  "bool": {
                    "must": [
                      { "term": { "xx": "yy" } },
                      { "term": { "xx": "yy" } },

                    ]
                  }
                },
                {
                  "bool": {
                    "must": [
                      { "range": { "xx": { "gte": yy1, "lte": yy2 } } }
                    ]
                  }
                }
              ]
            }
          }
        }
      },
      "from": 0,
      "size": 500,
      "min_score": 0.0,
      "sort": [],
      "aggs": {}
    }"

Во-первых, когда я использую этот запрос с .Raw () возвращает ошибку с Invalid Low Level Call.

Во-вторых, когда я использую следующую функцию для получения результатов:

var responseData = _connectionToEs.EsClient(_esInstanceUrl, _indexName).LowLevel.Search<myClass>(jsonQuery);

Я получаю следующую ошибку: The type 'myClass' cannot be used as type parameter 'TResponse' in the generic type or method IElasticLowLevelClient.Search<TResponse>(PostData, SearchRequestParameters). There is no implicit reference conversion from 'myClass' to 'Elasticsearch.Net.IElasticsearchResponse'.

Я застрял в этом довольно долгое время и не нашел никакого решения. Как я могу использовать необработанный запрос JSON для использования с функциями ElasticSearch. Net, если это будут функции Nest или функции низкого уровня? Пожалуйста помоги. Заранее спасибо !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...