2012-11-13 24 views
0

在Solr中,如果您有索引的一段數據,並且該數據中有一組日期值,那麼如何查詢索引並詢問事件之間的事件X和Y約會?例如,如果我有一個活動場地列表,如果每個活動場地都有幾十個事件(單人,全天或多日),那麼如何構建過濾器以返回活動在開始和結束之間的場地在搜索中指定的日期?在Solr中同一過濾器上的兩個不同日期上進行過濾

現在,如果我在表單中搜索並通過對Solr的提交,查詢字符串看起來是這樣的:

&fq=dm_event_start_date\:value:["2013-01-04T05:00:00Z" TO *] 
&fq=dm_event_end_date\:value:[* TO "2013-01-08T05:00:00Z"] 
&fq=bm_tickets_left\:value:"TRUE" 

我真的要問什麼是1月4日發生的或啓動事件,不要超過1月8日,還剩下門票。

我覺得我得到的回報是在兩個日期之間的任何事件,或者有票可用 - 不一定匹配日期。

回答

0

可能日期字段值需要超出範圍查詢中的引號,例如, : -

&fq=dm_event_start_date:value:[2013-01-04T05:00:00Z TO *] 
&fq=dm_event_end_date:value:[* TO 2013-01-08T05:00:00Z] 
&fq=bm_tickets_left:value:true 

此外bm_tickets_left需要只是字符串值。

+0

這看起來像一個類似的問題:http://stackoverflow.com/questions/5914083/solr-multivalued-date-field-range-queries-to-match-any-count - 如果你存儲日期在一個mysql記錄(從頭到尾),它在Solr中被索引爲兩個字段,在查詢時如何確保它們是連接的? – Kevin

相關問題