【发布时间】:2012-03-08 16:13:33
【问题描述】:
我的 ElasticSearch 索引中有 9000 个文档。
我想按已分析的字符串字段排序,因此,为了做到这一点,我知道(通过 Google)我必须更新映射以使该字段不被分析,以便我可以按此字段排序,我必须重新- 再次索引数据以反映映射的变化。
重建索引过程在我的机器上花费了大约 20 分钟。
奇怪的是,在一个非常强大的生产服务器上,重新索引过程大约需要 2 个小时。
我检查了该服务器上的内存状态和处理器使用情况,一切正常。
我想知道的是:
有没有一种方法可以通过分析的标记化字段对文档进行排序,而无需重新索引整个文档?
如果我必须重新索引整个文档,那么为什么要花这么长的时间来重新索引服务器上的文档??或者如何追踪该服务器上的缓慢原因?
【问题讨论】:
-
至于 1. 对映射的任何更改都需要重新索引。但是,拥有一个分析字段(用于显示/搜索目的或其他)和一个非分析字段(包含相同数据)用于并排排序是完全有效的(并且做了很多次)。也许这回答了我似乎从您的问题中推断出的隐含用例。
-
使用elasticsearch.org/guide/reference/mapping/multi-field-type.html 可以轻松地将相同的数据映射到多个字段(如上所述),这不需要更改您的客户端代码
标签: lucene elasticsearch