初学solr在schema 里面配置并使用sorl的date或者tdate类型,具体类型与使用如下:
<field name="tdate_field" type="tdate" indexed="true" stored="true" /> <field name="date_field" type="date" indexed="true" stored="true" /> <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/ <!-- A Trie based date field for faster date range queries and date faceting. --> <fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>在solr的web界面上进行query操作时,返回xml与json的时间结果总是相差8小时。但是sorj返回的得到的java.util.Date数据值又是正确的,没有相差8小时。
找到solr-crore包的org.apache.solr.schema.DateField代码:
public static TimeZone UTC = TimeZone. getTimeZone( "UTC");发现默认的时区是UTC。可见solr存的时间值是对的,只不过显示的时间是以"UTC" 零时区的时间显示,所以返回给Date数据也是正确的。
可以说,这是solr的一个坑,solr不提供时区配置的方式,只以" yyyy-MM-dd'T'HH:mm:ss'Z'"的时间格式返回xml或json的字符串,同时solr通过http传输,查询参数以字符串组装(好像只能以字符串方式建立主查询),例如:
Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'" ); String queryTime = QueryRule.ONLINE_TIME + ":[" +sdf.format(date )+ " TO "+ "*]" ; query.setQuery(queryTime);这样做的话一般采用本机默认时区,自然就有8小时的相差。
可以按如下方式解决:
Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy -MM-dd'T'HH:mm:ss'Z'"); sdf.setTimeZone(TimeZone. getTimeZone( "UTC")); String queryTime = QueryRule.ONLINE_TIME + ":[" +sdf.format(date )+ " TO "+ "*]" ; query.setQuery(queryTime);
但是还有一点还是很别扭,solr在网页,还有xml,json上返回的时间,还是以UTC为时区,相差8小时。
扯了半天,你可能早就想到了,用啥Date类型,干脆用long存得了。
相关推荐
Solr8.4.0 是 Apache Solr 的一个版本,这是一个高度可配置、高性能的全文搜索和分析引擎,广泛用于构建企业级搜索应用。 在 Solr 中,ikanalyzer 是一个重要的组件,它通过自定义Analyzer来实现中文的分词处理。...
总之,解决Solr启动404问题需要检查多个方面,包括但不限于Java环境、`solrhome`配置、核心配置文件、端口设置以及可能的容器化部署问题。仔细排查并按照上述步骤操作,通常都能找出问题所在并修复。如果问题持续...
9. **安全与认证**:Solr 8.x引入了内置的安全性框架,包括Zookeeper的ACL和Solr的Role-Based Access Control (RBAC),为用户提供了一种保护Solr集群的方式。 10. **JMX监控**:Solr支持Java Management Extensions...
Solr8是一个强大的开源搜索引擎,它允许用户对大量文本数据进行高效的检索、分析和管理。在结合Tomcat9作为应用服务器后,可以提供一个稳定且可扩展的平台,用于搭建企业的全文检索服务。本配置成功案例主要涉及了几...
【Solr 4.9与Jetty的运行】 Apache Solr 是一个开源的搜索平台,它提供了全文检索、高亮显示、拼写建议等功能。在Solr 4.9版本中,可以与Jetty或Tomcat这样的Servlet容器进行集成,以实现更灵活的部署。 1. **Solr...
在Windows 7操作系统中安装Apache Solr 4.4并将其部署到Tomcat 8是一项重要的配置工作,这对于搭建基于Solr的全文检索系统至关重要。下面将详细解释这个过程涉及的关键知识点。 首先,我们需要安装Java Development...
这个压缩包包含了一系列与Solr相关的资料和问题解决方案,对于开发者来说是一份宝贵的资源集合。 首先,"eContact+V3.5(3.5.7.4Q1)Solr檢索附件需求分析書V1.0-ZhaoHaiming20100415.docx"文件可能是关于一个特定...
在 Solr 8 中,为了确保系统的安全性和数据的隐私性,配置用户登录验证是非常重要的步骤。本文将详细介绍如何对手动配置 Solr 8 的用户登录验证。 首先,我们需要了解 Solr 的安全组件——Jetty 容器。Solr 默认...
【标题】"Tomcat8+Solr7.4+IK"是一个在Linux环境下搭建的搜索引擎解决方案,其中包含了Apache Tomcat 8作为应用服务器,Solr 7.4作为搜索引擎核心,以及IK Analyzer作为中文分词工具。这个配置适用于需要处理大量...
### Solr 4.7 服务搭建详细指南 #### 一、环境准备 为了搭建 Solr 4.7 服务,我们需要确保以下环境已经准备好: 1. **Java Development Kit (JDK) 1.7**:Solr 需要 Java 运行环境支持,这里我们选择 JDK 1.7 ...
Solr,全称为Apache Solr,是Apache软件基金会的一个开源项目,主要用来处理全文搜索和企业级的搜索应用。它基于Java,利用Lucene库构建,提供了高效、可扩展的搜索和导航功能。Solr-9.0.0是该软件的最新版本,此...
solr.warsolr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包...
Apache Solr 是一个开源的全文搜索引擎,由Apache软件基金会维护,是Lucene项目的一部分。它提供了高效、可扩展的搜索和导航功能,广泛应用于企业级的搜索应用中。Solr-8.11.1是该软件的一个特定版本,包含了最新的...
8. **Faceting**:Solr提供分面搜索功能,允许用户通过分类或统计方式查看搜索结果的不同方面,如按照品牌、价格区间等进行筛选。 9. **Highlighting**:高亮显示是Solr的一项特性,它可以在搜索结果中突出显示匹配...
1. 单节点 Solr 服务器,配置了 15GB 内存和 8 个 CPU 核心,其访问地址为 `http://xxxx:8983/solr`。 2. Solr 集群部署在 HDFS 上,由三台节点构成,通过 ZooKeeper 进行管理,每台节点的访问地址也是 `...
### Solr 4.10.2 与 Tomcat 6 的整合详解 #### 一、Solr 与 Tomcat 整合概述 Solr 是一个高性能、采用 Java 开发的全文搜索引擎,常用于网站搜索功能的搭建。而 Apache Tomcat 是一个免费开源的 Servlet 容器,...
Solr是中国最流行的开源搜索引擎平台之一,而IK Analyzer是一款针对中文的高性能分词器,尤其在处理现代汉语的复杂情况时表现出色。本教程将详细解释如何在Solr中安装和使用IK分词器。 首先,让我们理解一下什么是...
它是基于Java的,因此在使用Solr之前,确保你的系统已经安装了Java 8或更高版本是至关重要的。标题"solr-7.4.0.zip"表明这是一个包含了Solr 7.4.0版本的压缩包文件,该版本发布于2018年,包含了完整的Solr服务器及其...