ruby-on-rails - Elasticsearch DateTime 范围查询不一致
问题描述
我正在尝试在 rails 应用程序中使用带有 searchkick 的弹性搜索来查询日期范围。我尝试了很多事情,但这是目前的状态。我正在尝试搜索last_contacted
存储在架构中的datetime
.
我的searchdata
功能如下
def search_data_attributes
{
tag: tags.map { |t| t.name.downcase },
trait: person_traits.map { |pt| format('%s:%s', traits.find(pt.trait_id).name.downcase, pt.value.downcase) },
question: questions.map(&:id),
answer: answers.map { |a| a.value.downcase },
last_participated: last_participation_date.to_s,
signup_at: signup_at.to_s,
full_name: full_name,
last_contacted: last_contacted
}
结尾
我试过制作last_contacted.to_s
.
我的搜索查询如下所示
{
query: {
range: {
last_contacted: {
gte: "2018-09-15",
lte: "now"
}
}
}
}
我尝试过使用日期数学,例如now-20d
但返回零结果。如果我没有gte
限制搜索,now
则按lte
预期返回所有结果,但我所做的任何更改都gte
使用 datemath 返回零结果。
我感谢任何帮助,并很乐意回答问题。
谢谢你。
解决方案
尝试插入日期的格式:
{
query: {
range: {
last_contacted: {
gte: "01/01/2012",
lte: "now",
format: "dd/MM/yyyy"
}
}
}
}
推荐阅读
- docker - Docker Compose:如何配置拆分为多个 Dockerfile 的多阶段 Docker 映像?
- asp.net-core - ASP.NET Core 应用程序在 url https://gearssdk.opswat.com/ 之后注册,即使我没有注册它
- python - 如何从 Google 搜索结果页面中抓取所有结果(Python/Selenium ChromeDriver)
- node.js - firebase 数据库和快递
- firebase - 除非我热刷新,否则数据流不会在 iOS 上显示
- python - 断开我的机器人与语音频道 discord.py 的连接
- node.js - 在graphql中合并不同的模式
- javascript - 将事件侦听器添加到提交按钮以运行函数
- java - 无法从DataSource获取Jdbc连接,不支持认证类型10
- html - 试图在悬停时显示 div 但没有任何效果