#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()