2011-11-02 61 views
1

更大的我已經在Solr中以下檢查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之間十三點30分○○秒)??
感謝您的幫助

回答

2

解析字段需要定義爲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"/> 

所以,索引時,響應它會顯示爲<date name="parsed">2009-04-28T00:00:00Z</date>

竟被這d允許您爲日期欄使用date filter queries

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

而且搜索它會更好地使用q=person:jain
使用過濾器查詢來限制文檔而不是搜索。

+0

PLZ請原諒我在solr中的有限知識: 我已添加 但它給了我「字段解析時指定的未知字段類型」datefield「什麼是正確的語法?謝謝 – Alaa

+0

更新了答案。 – Jayendra

+0

:(我是100文件(就像一個測試)的測試...現在加入正是你告訴我上面後..我的了: 索引完成。新增/更新:0個文件。刪除了0個文件。 100 謝謝 – Alaa

0

這些查詢參數,就可以(不測試,而不是網址轉義

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 documentation範圍部分見側面。