我想创建一个搜索索引,其中包含一个属性,我想按照以下顺序获得结果:
所以为此,我想使用https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-edgengram-tokenizer.html
但我的索引设置中已经有一个tokenizer kuromoji_tokenizer
。
那么如何在设置中添加另一个标记器(以后再在分析器中使用它),以便我可以完成以上的scneario?
所以例如在json下面,我可以将另一个子节点添加到tokenzier或者tokenzier需要是一个数组吗?
"settings": {
"analysis": {
"analyzer": {
"autocomplete": {
"tokenizer": "autocomplete",
"filter": [
"lowercase"
]
},
"autocomplete_search": {
"tokenizer": "lowercase"
}
},
"tokenizer": {
"autocomplete": {
"type": "edge_ngram",
"min_gram": 2,
"max_gram": 10,
"token_chars": [
"letter"
]
}
}
}
}
答案 0 :(得分:1)
我相信你可以,是的。只需将它添加到第一个旁边,不要创建数组,只需给它另一个名称(在我的例子中我称之为“my_other_tokenizer”):
"settings": {
"analysis": {
"analyzer": {
"autocomplete": {
"tokenizer": "autocomplete",
"filter": [
"lowercase"
]
},
"autocomplete_search": {
"tokenizer": "lowercase"
}
},
"tokenizer": {
"autocomplete": {
"type": "edge_ngram",
"min_gram": 2,
"max_gram": 10,
"token_chars": [
"letter"
]
},
"my_other_tokenizer": {
"type": "kuromoji_tokenizer",
"mode": "extended",
"discard_punctuation": "false",
"user_dictionary": "userdict_ja.txt"
}
}
}
}
然后在分析仪设置中使用它,就像您对第一个标记器一样。