elastisearch 中multi_field得使用

 需求: 接收一个时间得毫秒值,转换为date类型,并且需要这个毫秒值做long类型得范围方便查找。

方案:考虑重新建索引,修改mapping,time字段用multi_field,定义为两种类型,一种式date一种是long。

实践:在实践种创建索引时候,出错。

   "time":{
            "type": "multi_field",
                "fields": {
                  "name": {"type": "date"},
                  "touche": {"type": "long"}
                 }
          }

 

mapping中设置一个字段为multi_field类型,在创建index mapping得时候,报错No handler for type [multi_field] declared on field [time]。

尝试修改time字段得定义为

    "time": {
             
             "type": "epoch_millis",
                "fields": {
                  "name": {"type": "date"},
                  "touche": {"type": "long"}
                }
            }

依然报错No handler for type [epoch_millis] declared on field [time]; 

通过查看elasticsearch文档,一直没有创建成功,在上面两个定义中,徘徊。

最后我把epoch_millis 改为了date类型,index创建成功。time既可以用做date也可以用作long类型,通过大小范围搜寻。

"time": {
                    "type": "date",
                    "fields": {
                        "my_long": {
                            "type": "long"
                        }

                }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Androidintent multi_task flag的具体含义是指当打开一个新的Activity时,如果设置了multi_task flag,则会在后台创建新的task,而不是在当前task打开新的Activity。 ### 回答2: Android,Intent的multi_task标志是指一个意图可以同时启动多个任务。当我们在启动一个Activity时,可以设置Intent的flags属性为FLAG_ACTIVITY_MULTIPLE_TASK。这个标志告诉系统,当前的Activity可以在其自己的任务栈启动。 具体来说,当我们使用multi_task标志时,通过startActivity()方法启动Activity时,系统会根据设置的flag来决定Activity的启动行为。如果该Activity已经存在于一个任务栈,那么系统会创建一个新的任务栈,并在新的任务栈启动这个Activity。这样可以同时打开多个相同的Activity,并且它们各自运行在不同的任务栈使用multi_task标志可以实现一些特定的功能需求,比如多窗口分屏、在同一个应用同时打开多个相同的Activity等。通过在Intent设置这个标志,我们可以灵活地控制Activity的启动模式,增加用户的使用体验。 需要注意的是,使用multi_task标志时,要特别小心各个Activity之间的共享数据和资源的问题,需要进行适当的处理,以免出现意外情况。同时,使用该标志时,也要考虑到设备的性能和用户的使用习惯,避免过多占用系统资源。 总之,Intent的multi_task标志是指可以同时启动多个任务的意图。在Android开发,我们可以通过设置这个标志来控制Activity的启动行为,从而满足不同功能需求。 ### 回答3: 在Android,Intent是一种在组件之间传递信息的机制。Intent有很多的标志位(flag)可用于指定Intent的行为。其multi_task flag是一个用于指定启动Activity时的行为的标志位。 multi_task flag代表启动一个新的任务(Task)。在Android,一个任务是一系列相关联的活动(Activity)的集合。当我们使用Intent启动一个Activity时,系统会创建一个新的任务,并将该Activity添加到该任务。 具体来说,使用multi_task flag启动一个Activity时,系统会为该Activity创建一个独立的任务,并将该Activity置于任务栈的顶部。该Activity会显示在最近使用过的应用列表,并且可以通过系统的任务切换(Task Switcher)功能进行切换。 multi_task flag的具体含义是允许Activity在独立的任务运行。对于需要在不同任务之间切换的场景,例如在多窗口模式下同时运行多个应用程序,或者在某些设备的分屏模式下使用多个应用程序时,使用multi_task flag可以很方便地创建并切换任务。 需要注意的是,使用multi_task flag启动Activity时,可能会受到一些限制。例如,一些权限和启动模式可能会影响Activity是否能够在新的任务启动。因此,在使用multi_task flag启动Activity时,需要仔细考虑相关的权限和启动模式设置。 总之,Androidmulti_task flag具体含义是允许Activity在独立的任务运行,以实现在不同任务之间切换的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值