Многовариантный поиск ElasticSearch в гнезде

#elasticsearch #nest

#elasticsearch #гнездо

Вопрос:

У меня есть этот DSL-запрос, который работает. Он возвращает результат, как и ожидалось.

 GET /filedocuments/_search
{
    "query": {
        "multi_match": {
          "query": "abc",
          "fields": ["fileName", "metadata"]
        }
    }
}
  

Но, когда он запускается в библиотеке NEST ниже, он не возвращает результата. Что я пропустил?

 var response = await _elasticClient.SearchAsync<FileDocument>(s => s
    .Query(q => q
        .MultiMatch(c => c
            .Fields(f => f.Field(p => p.FileName).Field(p => p.Metadata))
            .Query("abc")
        )
    )
);
  

Это отображение:

 "fileName" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
  

и

  "metadata" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        }
  

Комментарии:

1. Вы пробовали использовать части с несколькими совпадениями по отдельности?

2. Как выполнить многовариантный поиск отдельно?

3. Я сказал, что части с несколькими совпадениями.

4. да, но есть ли какой-нибудь пример для этих частей с несколькими совпадениями?

5. Не могли бы вы проверить, какой фактический HTTP-запрос был сгенерирован? Включая URI и тело запроса.

Ответ №1:

Решаемая после того, как я преобразовал ее в .ToUpper()