在 elasticsearch 文档的这一部分,它说瑞典语分析器可以像这样重新实现:
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 会查看其他列表以查找关键字?
是的,您需要自己指定此列表。否则,此筛选器不会执行任何操作。
根据Elasticsearch的文档:
关键字标记令牌筛选器
保护单词不被词干分析器修改。必须放在之前 任何词干筛选器。
或者,您可以指定:
keywords_path
指向列表的路径(相对于配置位置或绝对路径( 的话。
keywords_pattern
与文本中的单词匹配的正则表达式模式。
有关此筛选器的详细信息 - https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-keyword-marker-tokenfilter.html