在弹性搜索文档的this part上,它说瑞典语分析器可以像这样重新实现:
PUT /swedish_example
{
"settings": {
"analysis": {
"filter": {
"swedish_stop": {
"type": "stop",
"stopwords": "_swedish_"
},
"swedish_keywords": {
"type": "keyword_marker",
"keywords": ["exempel"]
},
"swedish_stemmer": {
"type": "stemmer",
"language": "swedish"
}
},
"analyzer": {
"swedish": {
"tokenizer": "standard",
"filter": [
"lowercase",
"swedish_stop",
"swedish_keywords",
"swedish_stemmer"
]
}
}
}
}
我的问题是,该分析器如何识别关键字?当然,关键字可以在settings.analysis.filter.swedish_keywords.keywords
字段中定义,但如果我懒得这么做呢? Elasticsearch是否会查看预定义瑞典语关键字的其他一些关键字列表?因为在上面的示例中,看起来设置中没有提供此类列表。
换句话说,是否仅由我来定义关键字,或者Elasticsearch是否会查看其他列表以默认查找关键字?
答案 0 :(得分:1)
是的,您需要由您指定此列表。否则,此过滤器不会任何。
根据Elasticsearch的文档:
关键字标记令牌过滤器
保护单词不被词干分析者修饰。必须放在之前 任何堵塞过滤器。
或者,您可以指定:
keywords_path
路径(相对于配置位置,或绝对路径)到列表 词语的
keywords_pattern
正则表达式模式以匹配文本中的单词。
有关此过滤器的详细信息 - https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-keyword-marker-tokenfilter.html