使用西班牙语分析的术语汇总(不包括最后的元音)-Elasticsearch 6.4

时间:2019-08-07 04:16:07

标签: elasticsearch aggregation elasticsearch-aggregation

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

数据是从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 }]

其中,“驱逐出境”应为“驱逐出境”,“墨西哥”应为“墨西哥”,“ quier”应为“ quiero”等。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您好,spanish分析器(reference here)包含词干标记过滤器。正是这种词干还原了单词的词根,从而通常删除了单词末尾的一些字符。

有关阻止here的更多信息

为避免此行为,您将需要创建一个新的自定义分析器而不阻止它。

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