以下面的映射为例:
app.set('query parser', 'simple') // or 'extended' to use 'qs' module
我已经从官方Mozilla页面下载了hunspell词典。
现在的问题是有些词,例如啤酒被过度分析。以下查询将啤酒转化为蜜蜂,这不完全正确吗?
PUT /test
{
"settings": {
"analysis": {
"filter": {
"my_hunspell": {
"type": "hunspell",
"language": "en_GB"
}
},
"analyzer": {
"my_test": {
"type" : "custom",
"tokenizer": "lowercase",
"filter": ["my_hunspell"]
}
}
}
}
}
Hunspell语法很难理解。可以做些什么来避免这种行为?是否可以保留一些单词或添加一些规则?
答案 0 :(得分:1)
如果您能够提出要保留的单词列表,那么Keyword Marker Token Filter可能值得研究。看起来这样可以防止你想要保护的词语被阻止。您更新的分析器可能类似于:
{
"settings": {
"analysis": {
"filter": {
"my_hunspell": {
"type": "hunspell",
"language": "en_GB"
},
"protect_my_words": {
"type": "keyword_marker",
"keywords_path": <PATH TO TEXT FILE WITH THE WORDS>
}
},
"analyzer": {
"my_test": {
"type" : "custom",
"tokenizer": "lowercase",
"filter": ["protect_my_words", "my_hunspell"]
}
}
}
}
}
如果您想要转换特定的单词或模式,还有Pattern Replace Token Filter可能会有用。这可以在关键字标记令牌过滤器之前。