【发布时间】:2011-12-20 05:11:45
【问题描述】:
我在 solr 中有以下内容
现在如果我想搜索jain,我将使用此查询
现在的问题是:我如何搜索在(大于)2011-11-01 13:00:00 或(在 2011-11-01 12:30:00 和2011-11-01 13:30:00)??
感谢您的帮助
【问题讨论】:
标签: solr facet faceted-search
我在 solr 中有以下内容
现在如果我想搜索jain,我将使用此查询
现在的问题是:我如何搜索在(大于)2011-11-01 13:00:00 或(在 2011-11-01 12:30:00 和2011-11-01 13:30:00)??
感谢您的帮助
【问题讨论】:
标签: solr facet faceted-search
解析后的字段需要定义为datefield。
例如
schema.xml -
TrieDateField 的字段类型应该可用 -
<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/>
将 tdate 字段类型的 prased 字段映射为 -
<field name="parsed" type="tdate" indexed="true" stored="true"/>
因此,当被索引时,它的响应将显示为<date name="parsed">2009-04-28T00:00:00Z</date>
这将允许您使用date filter queries 作为日期字段。
例如fq=parsed:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]
对于搜索,最好使用q=person:jain。
使用过滤查询来限制文档而不是搜索。
【讨论】:
这些查询参数应该可以工作(没有经过测试,也没有 url 转义)
facet.field=parsed
f.parsed.facet.range.start=2011-11-01T12:30:00Z
f.parsed.facet.range.end=2011-11-01T13:30:00Z
解释:
facet.field=parsed 启用字段parsed 中的分面。f.parsed.facet.range.start/end 定义该字段的下限和上限。NOW+1YEAR。有关详细信息,请参阅Solr documentation 中的Facet by Range部分。
【讨论】: