我正在尝试将语言分析器与char_filter结合使用,但是当我查看字段的_termvectors时,我可以看到html / xml标签中的值是自定义xml标签的属性,如“22anchor_titl”。
我的想法是扩展德语过滤器:
settings:
analysis:
analyzer:
node_body_analyzer:
type: 'german'
char_filter: ['html_strip']
mappings:
mappings:
node:
body:
type: 'string'
analyzer: 'node_body_analyzer'
search_analyzer: 'node_search_analyzer'
我的配置是否有错误,或者是通过添加char_filter从'gernam'派生新分析器的概念根本不可能。如果是这样,我是否必须制作一个类型:'自定义'分析器,实现像documentation这样的整个过程并添加过滤器?
干杯
答案 0 :(得分:2)
是的,你需要这样做。如果您想添加另一个令牌过滤器怎么办?哪个ES应该把那个放在已存在的令牌过滤器列表中(因为顺序很重要)?你需要这样的东西:
"analysis": {
"filter": {
"german_stop": {
"type": "stop",
"stopwords": "_german_"
},
"german_keywords": {
"type": "keyword_marker",
"keywords": ["ghj"]
},
"german_stemmer": {
"type": "stemmer",
"language": "light_german"
}
},
"analyzer": {
"my_analyzer": {
"type":"custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"german_stop",
"german_keywords",
"german_normalization",
"german_stemmer"
],
"char_filter":"html_strip"
}
}
}