Elasticsearch - 针对现有数据集测试新的分析器
Elasticsearch - Test new analyzers against an existing data set
Elasticsearch 新手。
我需要更新索引以将复数和单数视为匹配项。所以 green apple
应该匹配 green apples
并且很好(反之亦然)。
通过我的研究,我了解到我需要使用 stemmer
过滤器重新创建索引。
所以:
"analysis": {
"analyzer": {
"std_analyzer": {
"tokenizer": "whitespace",
"filter": [ "stemmer" ]
}
}
}
谁能确认以上是否正确?如果没有,我需要使用什么?
我也明白我不能修改现有的索引,而是需要用这个分析器创建一个新的,然后将所有文档重新添加到新的索引中。那是对的吗?如果是这样,是否有快捷方式或简单的方法告诉它“将索引 X 中的所有文档添加到新索引 Y?”
感谢您的帮助
查找内联答案
在大多数情况下,它应该可以工作,而且很难涵盖所有未来的用例,在你的情况下我们甚至不知道你当前的用例,你在将这些与分析器相关的更改推送到生产环境之前,可以使用 Analyze API 并测试您的一些用例。*
Adding/changing Analyzer 是一项重大更改,因为它控制令牌在 elasticsearch 倒排索引中的生成和索引方式,因此 您必须创建重新索引所有具有更新的分析器设置的文档,您可以将 reindex API 与
零停机时间的别名。
Elasticsearch 新手。
我需要更新索引以将复数和单数视为匹配项。所以 green apple
应该匹配 green apples
并且很好(反之亦然)。
通过我的研究,我了解到我需要使用 stemmer
过滤器重新创建索引。
所以:
"analysis": {
"analyzer": {
"std_analyzer": {
"tokenizer": "whitespace",
"filter": [ "stemmer" ]
}
}
}
谁能确认以上是否正确?如果没有,我需要使用什么?
我也明白我不能修改现有的索引,而是需要用这个分析器创建一个新的,然后将所有文档重新添加到新的索引中。那是对的吗?如果是这样,是否有快捷方式或简单的方法告诉它“将索引 X 中的所有文档添加到新索引 Y?”
感谢您的帮助
查找内联答案
在大多数情况下,它应该可以工作,而且很难涵盖所有未来的用例,在你的情况下我们甚至不知道你当前的用例,你在将这些与分析器相关的更改推送到生产环境之前,可以使用 Analyze API 并测试您的一些用例。*
Adding/changing Analyzer 是一项重大更改,因为它控制令牌在 elasticsearch 倒排索引中的生成和索引方式,因此 您必须创建重新索引所有具有更新的分析器设置的文档,您可以将 reindex API 与 零停机时间的别名。