我正在尝试使用 NEST 复制以下映射,但在将标记字符映射到标记生成器时遇到问题。
{
"settings": {
"analysis": {
"filter": {
"nGram_filter": {
"type": "nGram",
"min_gram": 2,
"max_gram": 20,
"token_chars": [
"letter",
"digit",
"punctuation",
"symbol"
]
}
},
"analyzer": {
"nGram_analyzer": {
"type": "custom",
"tokenizer": "whitespace",
"filter": [
"lowercase",
"asciifolding",
"nGram_filter"
]
}
}
}
}
我能够复制除令牌字符部分之外的所有内容。有人可以帮忙这样做吗?下面是我复制上述映射的代码。 (除了token字符部分)
var nGramFilters1 = new List<string> { "lowercase", "asciifolding", "nGram_filter" };
var tChars = new List<string> { "letter", "digit", "punctuation", "symbol" };
var createIndexResponse = client.CreateIndex(defaultIndex, c => c
.Settings(st => st
.Analysis(an => an
.Analyzers(anz => anz
.Custom("nGram_analyzer", cc => cc
.Tokenizer("whitespace").Filters(nGramFilters1)))
.TokenFilters(tf=>tf.NGram("nGram_filter",ng=>ng.MinGram(2).MaxGram(20))))));
参考
- 那么问题
- GitHub 问题