Я хотел бы создать индекс, используя произвольное описание анализаторов, картографов и т. д., определенное в строке json. По смыслу моя команда:
Код: Выделить всё
PUT /my_index
{
"settings":
{
"analysis":
{
"char_filter" :
{
"my_mapping" :
{
"type" : "mapping",
"mappings" : [".=>,", "'=>,"]
}
},
"analyzer":
{
"my_analyzer":
{
"type": "custom",
"tokenizer": "standard",
"filter": ["lowercase" ],
"char_filter" : ["my_mapping"]
}
}
}
}
}
}
Код: Выделить всё
string json = RetrieveJson();
ElasticSearchClient client = InitializeClient();
client.CreateIndexUsingJson( json ); // this is the syntax I can't figure out
Варианты, которые я могу себе представить, включают:
- Каким-то образом используя ElasticClient.Raw.IndicesCreatePost или что-то в этом роде аналогичный
- Десериализация строки json в объект IndexSettings с помощью IndexSettingsConverter.ReadJson(), а затем применение этого с помощью ElasticClient.CreateIndex(ICreateIndexRequest)
Я абсолютно стараюсь избегать версий CreateIndex с лямбда-функцией, поскольку было бы жалко переводить пользовательский json в выражения lamdba только для немедленного перевода их обратно в json глубоко в NEST.
Другие варианты или конкретные примеры № 1 или № 2 выше очень приветствуются, как и рекомендуемый подход к решению этой проблемы.>
Подробнее здесь: https://stackoverflow.com/questions/290 ... fying-json
Мобильная версия