【发布时间】:2020-10-19 02:52:06
【问题描述】:
我正在开发一个西班牙搜索引擎。 (我不会说西班牙语)但根据我的研究,目标或多或少是这样的: 1. 过滤停用词,如“dos”、“de”、“la”... 2. 为两个搜索词干和索引。例如,如果您搜索“primera”,那么“primero”、“primer”也应该会出现。
我的尝试:
es_analyzer={
"settings": {
"analysis": {
"filter": {
"spanish_stop": {
"type": "stop",
"stopwords": "_spanish_"
},
"spanish_stemmer": {
"type": "stemmer",
"language": "spanish"
}
},
"analyzer": {
"default_search": {
"type": "spanish"
},
"rebuilt_spanish": {
"tokenizer": "standard",
"filter": [
"lowercase",
"spanish_stop",
"spanish_stemmer"
]
}
}
}
}
}
问题:
当我在"default_search" 中使用"type":"spanish" 时,我的查询“primera”被终止为“primer”,这是正确的,但即使我指定在过滤器中使用"spanish_stemmer",索引中的文档也不是干的。因此,当我搜索“primera”时,它只显示“primer”的完全匹配。有什么解决这个问题的建议吗?
可能的修复,但我还没有弄清楚语法:
- 在过滤器中使用内置的
"spanish"分析器。语法是什么? - 在
"default_search"中添加西班牙语词干分析器和停用词。但我不知道如何在那里使用复合设置。
【问题讨论】:
标签: elasticsearch elasticsearch-analyzers