我试图在elasticsearch查询中使用无痛语言来比较小时数。我想问一下这样的问题:
{
"script":"doc['schedule.from_time'] >= doc['schedule.to_time']"
}
但我有错误:
无法应用 [
嵌套文档的方案是:
{
"settings": {
"index.mapping.total_fields.limit": 10000
},
"mappings": {
"_doc": {
"dynamic_templates": [{
"integers": {
"match_mapping_type": "long",
"mapping": {
"type": "long",
"index": false
}
}
}],
"properties": {
"enabled_services": {
"type": "nested",
"properties": {
"service_id": {
"type": "text",
"analyzer": "whitespace",
"search_analyzer": "whitespace"
},
"available_day_of_week": {
"type": "long"
},
"available_from_time": {
"type": "date",
"format": "hour_minute"
},
"available_to_time": {
"type": "date",
"format": "hour_minute"
}
}
}
}
}
}
}
(这些值的格式为“2:00”或“18:00”)。
我尝试过使用< code >。日期 或<代码>。value,但它不起作用,因为我的变量只包含小时而不是日期时间。
有人能帮帮我吗:)
OK我找到了答案:
{
"script": {
"script": "doc['enabled_services.available_from_time'].date.isBefore(doc['enabled_services.available_to_time'].date)"
}
}
谢谢大家!
我认为您正在寻找:
doc['enabled_services.available_from_time'].value.isAfter(doc['enabled-services.available_ to_time'].value)
您还需要从映射中删除“类型”:“嵌套”。
我认为在你的情况下不需要它。
工作代码如下:
PUT /painless-dates
{
"settings": {
"index.mapping.total_fields.limit": 10000
},
"mappings": {
"_doc": {
"dynamic_templates": [
{
"integers": {
"match_mapping_type": "long",
"mapping": {
"type": "long",
"index": false
}
}
}
],
"properties": {
"enabled_services": {
"properties": {
"service_id": {
"type": "text",
"analyzer": "whitespace",
"search_analyzer": "whitespace"
},
"available_day_of_week": {
"type": "long"
},
"available_from_time": {
"type": "date",
"format": "hour_minute"
},
"available_to_time": {
"type": "date",
"format": "hour_minute"
}
}
}
}
}
}
}
POST /painless-dates/_doc
{
"enabled_services": {
"available_from_time": "02:00",
"available_to_time": "18:00"
}
}
POST /painless-dates/_doc
{
"enabled_services": {
"available_from_time": "04:00",
"available_to_time": "03:00"
}
}
GET /painless-dates/_search
{
"query": {
"bool": {
"must": {
"script": {
"script": {
"source": "doc['enabled_services.available_from_time'].value.isAfter(doc['enabled_services.available_to_time'].value)",
"lang": "painless"
}
}
}
}
}
}
{
"took": 8,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "painless-dates",
"_type": "_doc",
"_id": "0wFw7mYBueYINcTmJsMG",
"_score": 1,
"_source": {
"enabled_services": {
"available_from_time": "04:00",
"available_to_time": "03:00"
}
}
}
]
}
}
我有一个将unitPrice设置为BigDecimal数据类型的域类。现在我正在尝试创建一种比较价格的方法,但似乎我不能在BigDecimal数据类型中使用比较运算符。我必须更改数据类型还是有其他方法?
问题内容: 假设我有3个输入:rate,sendAmount和receiveAmount。我把那3个输入放在useEffect diffing params上。规则是: 如果sendAmount更改,我计算 如果receiveAmount改变了,我计算 如果费率发生变化,我计算时间或计算时间 这是codesandbox https://codesandbox.io/s/pkl6vn7x6j来演示此
问题内容: 我在数据库中有2个日期对象,它们代表公司的工作时间。 我只需要几个小时,但是因为我必须保存日期。它看起来像这样: 开始时间:12-12-2001-13:00:00完成时间:12-12-2001-18:00:00 我有公司和用户所在的时区。(我的服务器可能在另一个时区)。 我需要检查用户的当前时间(考虑他所在的时区)是否在公司工作时间之内(考虑公司所在的时区)。 我该怎么做?我用Java
问题内容: 我看到可以进行日期比较,也可以进行日期比较,但是我一直在努力寻找如何检查当前时间()是否早于指定时间(例如上午8点),还是晚于指定时间(例如上午8点),而不管日期如何。 问题答案: 您 无法 将特定时间点(例如“现在”)与一个固定的重复发生的事件(每天早上8点发生)进行比较。 您可以检查是否现在之前或之后, 今天 上午8点:
问题内容: 使用Linux,我想比较两个具有相同架构的SQLite数据库。只会有一些差异。 有没有可以输出这些差异的工具?最好将它们输出到命令行,以便我可以grep / sed它们。 SQLite使用SQL,因此一般的SQL工具也可以使用。 问题答案: 请查看2015年5月7日发布的SQLite版本3.8.10。此版本首次包含 sqldiff.exe 实用程序, 用于计算两个SQLite数据库文件
问题内容: 我有一个函数,返回大小写混合的五个字符。如果我对此字符串进行查询,则无论大小写都将返回该值。 如何使MySQL字符串查询区分大小写? 问题答案: http://dev.mysql.com/doc/refman/5.0/en/case- sensitiveivity.html 默认字符集和排序规则为latin1和latin1_swedish_ci,因此默认情况下非二进制字符串比较不区分大