引用不同索引中的对象 - Elasticsearch

Refer to objects in different index - Elasticsearch

我有一个邮政编码 table,其中包含映射到州的邮政编码列表。在州 table 中,我有州名、州网站、关键位置等。我计划将这两个 table 值存储在使用 logstash 填充的弹性搜索中。

我的 ES 查询将基于邮政编码,结果应该 return 相应的州及其信息。

存储此类数据的最佳方法是什么。例如:将邮政编码存储为 id,将状态信息存储为值。在这种方法中,将存储大量重复数据。

在此先感谢您的宝贵建议!!!

Elasticsearch,实际上,一般来说,NoSQL 数据库,从不像 SQL 数据库那样使用外键中获得了很大一部分优势。

您不应引用州索引,而应在 Zip-Code 索引中包含所有州数据。因此,例如,如果您的 ES 数据库中有邮政编码 10001 和 10005(均在纽约),则两者都应包含值 "state",该值本身包含您为州列出的子值 table .这确实会重复数据(因为同一州的邮政编码的每个条目在其 'state' 值中将具有相同的信息),但相对于 SQL 数据库会提高速度(因为您不必须参考单独的 table).