Elasticsearch 关于唯一ID的表设计实践

订单列表搜索实现

电商平台的订单列表中,一般都会有搜索的功能,这次我具体谈一谈 针对订单Id 表搜索的设计。

在ES的表设计中,订单Id,我保存了两份,一份是 keyword 类型,另一份是 long 类型。

'mappings' => [
    '_order' => [
         'properties' => [
              'orderIDKeyword' => ['type' => 'keyword'],
              'orderIDLong' => ['type' => 'long'],
......

两种类型的orderID都发挥着不同的作用,其中第二个 long 类型的,首先用于排序,第二用于分页查询,这两个作用读者可以在各类电商订单搜索中感受到。我一开始有个疑问:

第一个 keyword 类型的订单Id有什么用?

keyword类型的 orderID 其作用主要是为了可以给用户前缀搜索的能力,比如输入orderID的前几位后,就可以输出符合条件的orderID

点赞