Gee*_*Jan 5 architecture lucene solr
考虑一个可能有多个开放时间的小节,具体取决于星期几(+可能关闭的特殊日期)
我希望能够查找当前打开的所有栏,这些栏将在下一个栏中打开,比如说3个小时.(或者可以问:'从7月18日开始,从7开始到(至少)10)
我认为最好的事情是每个日期都有一个"开放,关闭"元组(欢迎其他建议)
在我所知的情况下,没有一个将开放/关闭时间组合在一个字段中的字段类型,我可以天真地(但错误地)使用2个字段来定义这个结构:'open'和'closed',它们需要是多值的.
现在索引他们像:
open: 2011-11-08:1800 - close: 2011-11-09:0300
open: 2011-11-09:1700 - close: 2011-11-10:0500
open: 2011-11-10:1700 - close: 2011-11-11:0300
Run Code Online (Sandbox Code Playgroud)
查询的形式如下:
open < now && close > now+3h
Run Code Online (Sandbox Code Playgroud)
但由于没有办法表明'开放'和'关闭'是成对相关的,我会得到很多误报,例如上面的文件将被返回:
open < 2011-11-09:0100 && close > 2011-11-09:0600
Run Code Online (Sandbox Code Playgroud)
因为某些opendate在之前   2011-11-09:0100(即2011-11-08:1800:)而某些封闭式在之后2011-11-09:0600(例如:) ,2011-11-11:0300但这些开放日期和关闭日期不是成对相关的.
我一直在考虑使用Solr动态字段的完全不同的方法,其中每个开始和结束日期都获得它自己的动态字段,例如:
然后,客户端应该知道要查询的日期,从而知道要查询的正确字段.这样可以解决问题,因为startdate/enddate也不是成对相关的,但我担心从性能角度来看这可能是个大问题(尤其是Lucene fieldcache的内存消耗)
因此,我没有找到满意的解决方案.任何帮助高度赞赏.
在像我想要的那样保持 Bars 的粒度(而不是 BarsxDate)的同时,可以使用实验性的 Lucene Spatial Playground 实现。
用例+一般解决方案在这里: https: //issues.apache.org/jira/browse/SOLR-2155 ?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=comment-13115244#评论-13115244
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1003 次  |  
        
|   最近记录:  |