【问题标题】:FOS elastica ordering results by datetime按日期时间排列的 FOS elastica 排序结果
【发布时间】:2023-03-29 17:07:01
【问题描述】:

我正在按数据库中的日期时间字段订购 FOS elastica 搜索结果。

elastica.yml 在映射上设置了这个属性:

startsAt: { type: date, format: Y-m-d H:i:s }

但是在填充时我得到了这个:

 [Elastica\Exception\ResponseException]                                                                                                                                  
  MapperParsingException[mapping [soccer]]; nested: IllegalArgumentException[Invalid format: [Y-m-d H:i:s]: Illegal pattern component: i]; nested: IllegalArgumentExcept  
  ion[Illegal pattern component: i];  

如何指定正确的格式,以便我可以通过该日期时间字段搜索我的 elastica 结果?

【问题讨论】:

    标签: symfony foselasticabundle


    【解决方案1】:

    我设法得到了想要的结果......

    在 elastica.yml 中

    startsAt: { "type": "date", "store": true }
    

    在我的控制器操作中:

                $query = new Query();
                $queryString = new \Elastica\Query\QueryString();
    
                $queryString->setQuery('*'.$request->query->get('search').'*');
                $query->setQuery($queryString);
                $query->addSort(array('startsAt' => array('order' => 'desc')));
    
                $results = $finder->findPaginated(
                    $query,
                    array(
                        'from' => ($request->query->get('page', 1) - 1) * $limit,
                        'limit' => $limit,
                    )
                );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-02
      • 2016-08-09
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      相关资源
      最近更新 更多