gpt4 book ai didi

elasticsearch - 为json中的数据选择正确的日期格式

转载 作者:行者123 更新时间:2023-12-02 22:56:38 25 4
gpt4 key购买 nike

我正在使用 flex 搜索,我想按日期范围创建搜索,我正在考虑将LocalDate用于此唯一问题是json数据中的日期看起来像这样

 {
"departure": {
"city": "\u041c\u0438\u043d\u0441\u043a",
"date": "Aug 27, 2018 12:09:00 AM"
},

我有大约1000个这样,所以将json中的每个日期更改为yyyy-mm-dd格式对我来说是不明智的

我的搜索方法就这样在Java中。
 public List<Map<String, Object>> searchDao(LocalDate departureDateFrom, LocalDate departureDateTo,
String countryOrCityOrHotel, int nights, int people, String departureCity) {
List<Map<String, Object>> search = new ArrayList<>();


QueryBuilder range = QueryBuilders.rangeQuery("date")
.from(departureDateFrom)
.to(departureDateTo)
.includeLower(true)
.includeUpper(true);

QueryBuilder cityQuery = QueryBuilders.matchQuery("departure.city", departureCity);
QueryBuilder nightsQuery = QueryBuilders.matchQuery("nights", nights);
QueryBuilder peopleQuery = QueryBuilders.matchQuery("people", people);
QueryBuilder destinationHotel = QueryBuilders.matchQuery("hotel.country", countryOrCityOrHotel);

如何更改本地日期格式以接受此类日期,以便更轻松地按原样使用数据。

最佳答案

您需要在索引模板中使用正确的映射:
{
“出发日期”: {
“type”:“日期”
}
}

并在您的Java代码中编写以下代码:

QueryBuilder range = QueryBuilders.rangeQuery("date")
.from(departureDateFrom)
.to(departureDateTo)
.format("MM dd yyyy hh:mm:ss")
.includeLower(true)
.includeUpper(true);

但是总的来说,在存储日期时使用纪元时间是一个好主意,因为字符串非常脆弱,而且格式随时都在变化。

关于elasticsearch - 为json中的数据选择正确的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51686557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com