2009-04-28 32 views
25

Vâng, tôi đang mã hóa một số phương thức để trả về các tài liệu solr có phạm vi ngày khoảng thời gian. Các trường ngày được lưu trữ trên Documents có định dạng ISO 8601.Solr tìm nạp phạm vi ngày

Bất kỳ ý tưởng nào?

thx

Trả lời

61

Kiểm tra trong SOLR wiki đối với một số tài liệu và các ví dụ:

timestamp: [* ĐẾN VỚI DOANH NGHIỆP]

Tạo ngày: [1976-03-06T23: 59: 59.999Z ĐẾN *]

Tạo ngày: [1995-12-31T23: 59: 59.999Z ĐẾN 2007-03-06T00: 00: 00Z]

pubdate: [BÂY GIỜ-1YE AR/NGÀY ĐẾN VỚI DOANH NGHIỆP/NGÀY + 1day]

Tạo ngày: [1976-03-06T23: 59: 59.999Z ĐẾN 1976-03-06T23: 59: 59.999Z + 1 năm]

Tạo ngày: [1976- 03-06T23: 59: 59.999Z/NĂM ĐẾN 1976-03-06T23: 59: 59.999Z]

Hope this helps, David.

+0

Thx David, lời chào từ Tây Ban Nha – Lici

+0

Bạn đang chào đón, Nếu câu trả lời này là giải pháp mà bạn đang tìm kiếm, chỉ cần đánh dấu là Được chấp nhận, Nếu không, hãy cho chúng tôi (cộng đồng) biết những gì vẫn còn theo cách của bạn :) –

+3

Tất cả các ví dụ về ngày sử dụng ngày tháng, chỉ có thể làm việc với ngày tháng? Ví dụ. được tạo: [1976-03-06 TO 1976-03-09] – kaqqao

30

Ở đây bạn sẽ tìm thêm chi tiết về phạm vi truy vấn

https://cwiki.apache.org/confluence/display/solr/The+Standard+Query+Parser

Một vài exampled

1. Exact Matching: q= modify_date:"2012-07-06T9:23:43Z" 
2. Less than: q= modify_date:{* TO 2012-07-06T9:23:43Z } 
3. More than: q= modify_date:{ 2012-07-06T9:23:43Z TO *} 
4. Less or equal than: modify_date:[* TO 2012-07-06T9:23:43Z] 
5. More or equal than: modify_date:[ 2012-07-06T9:23:43Z TO *] 

Dấu ngoặc vuông [] biểu thị một truy vấn phạm vi bao gồm phù hợp với giá trị bao gồm cả trên và dưới bị ràng buộc .

Dấu ngoặc nhọn {} biểu thị truy vấn phạm vi độc quyền khớp với các giá trị giữa giới hạn trên và dưới, nhưng không bao gồm các giới hạn trên và dưới.

+1

Câu trả lời này bao gồm tất cả các khả năng như sử dụng dấu ngoặc nhọn để loại trừ một phạm vi cụ thể hơn câu trả lời được chấp nhận. – palerdot

+0

Ví dụ của Solr sử dụng loại trường TrieDate. Tuy nhiên, DateRangeField có cú pháp linh hoạt hơn. Bạn chỉ có thể chỉ định YYYY-MM hoặc YYYY. Xem ** Định dạng Phạm vi Ngày ** trong [Làm việc với Ngày trong hướng dẫn tham khảo] (https://cwiki.apache.org/confluence/display/solr/Working+with+Dates). –

3

Giả lĩnh vực của bạn trong Schema là như MODIFIED_DATE sau đó bạn có thể áp dụng sau Phạm vi truy vấn:

Modified_Date:[2015-04-20T07:49:00Z TO *] 
Modified_Date:[2015-04-20T07:49:00Z TO 2015-05- 
20T07:33:00Z] 
Modified_Date:[2015-04-20T07:49:00Z TO NOW] 
Modified_Date:[NOW-7DAY/DAY TO NOW] 
Modified_Date:"2015-05-27T10:04:00Z" 
Modified_Date:NOW 
Modified_Date:NOW/DAY 
Modified_Date:NOW/HOUR 
Modified_Date:NOW-1YEAR 
Modified_Date:NOW-2YEARS 
Modified_Date:NOW-3HOURS-30MINUTES 
Modified_Date:"2008-07-04T13:45:04Z/DAY" 
Modified_Date:[* TO NOW] 
Modified_Date://DAY 
Modified_Date://HOUR 
Modified_Date:[ * 2015-04-20T07:49:00Z ] 
Modified_Date:[2015-04-20T07:49:00Z *] 
Các vấn đề liên quan