使用西班牙语分析排除最后元音的术语聚合 - Elasticsearch 6.4

Terms Aggregation excluding last vowels using Spanish analyze - Elasticsearch 6.4

我正在尝试从一堆西班牙语推文中获取关键字。问题是,当我得到结果时,响应中大多数单词的最后一个元音都被删除了。知道为什么会这样吗?

数据是从 Twitter 中提取的西班牙语推文

这里是查询:

{
                "query": { 
                    "bool": {
                        "must": {
                            "terms": {
                                "full_text_sentiment": "positive"
                            }
                        },
                        "filter": {
                            "range": {
                                "created_at": {
                                    "gte": greaterThanTime,
                                    "lte": lessThanTime
                                }
                            }
                        }   
                    }
                },
                "aggs": {
                    "keywords": {
                        "terms": { "field": "full_text_clean", "size": 10}
                    }
                }
            }

字段的映射如下:

"full_text_clean": {
                    "type": "text",
                    "analyzer": "spanish",
                    "fielddata": true,
                    "fielddata_frequency_filter": {
                        "min": 0.1,
                        "max": 1.0,
                        "min_segment_size": 10
                    },
                    "fields": {
                        "keyword": {
                            "type": "keyword",
                            "ignore_above": 512
                        }
                    }
                }

这是响应中的桶:

[ { key: 'aquí', doc_count: 3 },
  { key: 'deport', doc_count: 3 },
  { key: 'informacion', doc_count: 3 },
  { key: '23', doc_count: 2 },
  { key: 'corazon', doc_count: 2 },
  { key: 'dios', doc_count: 2 },
  { key: 'mexic', doc_count: 2 },
  { key: 'mujer', doc_count: 2 },
  { key: 'quier', doc_count: 2 },
  { key: 'siempr', doc_count: 2 }]

其中 "deport",应该是 "deporte","mexic" 应该是 "mexico","quier" 应该是 "quiero" 等等

知道发生了什么吗?

谢谢!

您好,spanish 分析器 (reference here) 包含一个词干标记过滤器。正是这个词干分析器将单词缩减为词根,因此通常会删除单词末尾的一些字符。

有关词干提取的更多信息 here

要避免这种行为,您需要创建一个没有词干提取的新自定义分析器。

您可以使用文档中的示例,只需删除 spanish_stemmer 过滤器。