在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在默认情况下查看其他列表来查找关键字?
发布于 2018-05-16 08:50:52
是的,你需要由你指定这个列表。否则,这个过滤器就不会执行任何操作。
根据Elasticsearch的文档:
关键词标记标记过滤器 保护文字不被词干器修改。必须放置在任何堵塞过滤器之前。
或者,您可以指定:
keywords_path指向单词列表的路径(相对于配置位置或绝对路径)。
keywords_pattern一种正则表达式模式,用于匹配文本中的单词。
有关此过滤器的更多信息- https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-keyword-marker-tokenfilter.html
https://stackoverflow.com/questions/50350606
复制相似问题