Похоже, либо Analysis
на isettings
, либо TokenFilters
на isettings.Analysis
равно нулю. Вот пример, который работает
var isettings = new IndexSettings
{
Analysis = new Analysis
{
TokenFilters = new TokenFilters()
}
};
SynonymTokenFilter synonymFilter = new SynonymTokenFilter
{
Format = SynonymFormat.Solr,
SynonymsPath = "synonym.txt",
Tokenizer = "whitespace",
};
isettings.Analysis.TokenFilters.Add("mysynonym", synonymFilter);
isettings.NumberOfReplicas = 1;
isettings.NumberOfShards = 2;
IndexState indexConfig = new IndexState
{
Settings = isettings,
};
var client - new ElasticClient();
client.CreateIndex(new CreateIndexRequest("index", indexConfig));
, который создает следующий запрос JSON
PUT http://localhost:9200/index
{
"settings": {
"index.number_of_replicas": 1,
"analysis": {
"filter": {
"mysynonym": {
"synonyms_path": "synonym.txt",
"format": "solr",
"tokenizer": "whitespace",
"type": "synonym"
}
}
},
"index.number_of_shards": 2
}
}