我的Postgres数据库有一个名为salary的范围字段,类型为int4range。我打算将此字段索引到Elasticsearch。我可以知道推荐的方法吗?据我了解,Elasticsearch中没有范围类型,只有整数。

因此,我是否需要分别解析int4range的开始和结束边界并将它们索引为salary_beginsalary_end,并在搜索时使用范围过滤器,还是有更好的方法?

Postgres ==> int4range ==> salary (only 1 field in PSQL)

Elasticsearch ==> integer ==> [salary_begin, salary_end] (2 index fields in ES)

最佳答案

无需解析任何内容。只需使用lower()upper():

http://www.postgresql.org/docs/current/static/functions-range.html

09-20 17:02