检查 solr 方面查询是否大于特定日期时间值

发布于 2024-12-13 09:20:42 字数 575 浏览 3 评论 0原文

我现在在 solr 中有以下内容

<str name="id">2</str>
<arr name="parsed">
    <str>2011-11-01 13:40:08.0</str>
</arr>
<arr name="person">
    <str>Harsh Snehanshu | Apoorv Jain</str>
</arr>

如果我想搜索 jain

http://192.168.1.135:8888/solr/MyCol/select/?q=*%3A*&version=2.2&start=0&rows=10&indent=on&facet=true&fq=person:jain

,我现在将使用这个查询,问题是:我如何搜索之后已解析的条目(大于) 2011-11-01 13:00:00 或 (2011-11-01 12:30:00 至 2011-11-01 之间13:30:00)??
感谢您的帮助

I have the following in solr

<str name="id">2</str>
<arr name="parsed">
    <str>2011-11-01 13:40:08.0</str>
</arr>
<arr name="person">
    <str>Harsh Snehanshu | Apoorv Jain</str>
</arr>

now if i want to search for jain, simply i will use this query

http://192.168.1.135:8888/solr/MyCol/select/?q=*%3A*&version=2.2&start=0&rows=10&indent=on&facet=true&fq=person:jain

now the question is: how can i search for entries that have been parsed AFTER (greater than) 2011-11-01 13:00:00 or (between 2011-11-01 12:30:00 and 2011-11-01 13:30:00)??
Thanks for your help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

皇甫轩 2024-12-20 09:20:43

这些查询参数应该有效(未测试且未转义 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 定义该字段的下限和上限。
  • 日期应采用 ISO 8601 格式,但也允许“日期数学”表达式,例如 NOW+1YEAR

有关详细信息,请参阅 Solr 文档中的按范围排列部分细节。

These query parameters should work (not tested and not url escaped)

facet.field=parsed
f.parsed.facet.range.start=2011-11-01T12:30:00Z
f.parsed.facet.range.end=2011-11-01T13:30:00Z

Explanation:

  • facet.field=parsed enables faceting in the field parsed.
  • f.parsed.facet.range.start/end define the lower and upper bound for that field.
  • Dates should be in ISO 8601 format, but also "date math" expressions like NOW+1YEAR are allowed.

See the Facet by Range section in the Solr documentation for further details.

萌化 2024-12-20 09:20:42

解析的字段需要定义为 datefield

例如

schema.xml -

TrieDateField 的字段类型应该可用 -

<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/>

将 prased 字段与 tdate 字段类型映射为 -

<field name="parsed" type="tdate" indexed="true" stored="true"/>

因此,在索引时,响应将显示为 2009- 04-28T00:00:00Z

这将允许您使用 日期字段的日期过滤器查询

例如 fq=parsed:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]

另外,对于搜索,最好使用 q=person:耆那教
使用过滤器查询来限制文档而不是搜索。

The parsed field needs to be defined as a datefield.

e.g.

schema.xml -

Field type of TrieDateField should be available -

<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/>

Map the prased field with the tdate field type as -

<field name="parsed" type="tdate" indexed="true" stored="true"/>

So, when indexed, the response it would appear as <date name="parsed">2009-04-28T00:00:00Z</date>

This would allow you to use date filter queries for the datefield.

e.g. fq=parsed:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]

Also for search it would be better to use q=person:jain.
Use filter queries for restricting the documents rather than searching.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文