Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 包含字符链的字符串中的Solr rangesearch_String_Search_Solr_Range - Fatal编程技术网

String 包含字符链的字符串中的Solr rangesearch

String 包含字符链的字符串中的Solr rangesearch,string,search,solr,range,String,Search,Solr,Range,我希望我能找到一些帮助。我是solr的新手,有机会参加一个关于它的讨论。 对于以下情况,即使是主持讲座的顾问也不确定,因此我希望有人也有同样的问题 我有一个由特定键标识的对象列表。例如,目的: 有500000名员工通过id识别(1-500000)。这些人中的每一个人都必须在未来两年内工作。这些年中的每一天都由一个字符标识(员工将工作——“a”,员工将不工作——“B”)。因此,每个员工都会得到一个最多包含730个字符的字符串,但并不是每个员工都有730个字符(某个特定的员工后来加入了公司或其他什么

我希望我能找到一些帮助。我是solr的新手,有机会参加一个关于它的讨论。 对于以下情况,即使是主持讲座的顾问也不确定,因此我希望有人也有同样的问题

我有一个由特定键标识的对象列表。例如,目的: 有500000名员工通过id识别(1-500000)。这些人中的每一个人都必须在未来两年内工作。这些年中的每一天都由一个字符标识(员工将工作——“a”,员工将不工作——“B”)。因此,每个员工都会得到一个最多包含730个字符的字符串,但并不是每个员工都有730个字符(某个特定的员工后来加入了公司或其他什么)

employee 256的示例字符串:

AABBAAABAAAABBAB
=>员工256将工作2天,1天不工作,然后他将连续工作3天,1天空闲时间,4天工作,2天不工作,1天工作,1天回家,依此类推

employee 542的示例字符串:

ABBAABABAAABAAAABABBAABAAAAABBABBABABBBABAABABBABABABBABAAAA
员工2的示例字符串:

AAAABABBABABAAAABABABABABA
出于处置目的,我现在想让连续工作4天的员工与他们共进晚餐或其他什么

我希望收到以下结果:

employee 256 4 days free after day 8
employee 542 4 days free after day 12, after day 23, after day 56
employee   2 4 days free after day 0, after day 12

我希望你明白我的问题。这个例子只是为了更好地发挥想象力。是否可以使用solr实现解决方案?
其他解决方案方法(也适用于日表示法)非常受欢迎。现在我们依赖于每日表示(每天有一个字符)。但是,如果您为我提供了一个高性能的解决方案,甚至这也是可以讨论的。该项目的参赛作品数量(500000)是现实的

我不会将其建模为员工,而是可用性。可能将可用性作为员工的嵌套/子对象。然后,可用性对象将是StartDay,NumberOfDays


然后,查询变成了一个更简单的连接,条件是子对象的NumberOfDays>=4。

只是想澄清我的理解:对于string
aabbaaabaaabab
,您希望按他连续工作(或不工作)的所有天数对其进行索引。e、 g.
AA
BB
AAA
B
AAAA
BB
A
B
。稍后,您希望通过提供类似于
AAAA
的查询来搜索索引,这些查询是指连续工作了4天的人员。是否可以为整个字符串的子字符串编制索引?我认为只能为完整的字符串编制索引
aabbaaabaaabab
。但是是的,你是对的。当然,我不会在4天内每次都搜索。例如,它可以更改为14天或42天。我不确定是否有任何现有的过滤器可以提供此功能。但是如果您有要求,那么您可以实现自己的过滤器,该过滤器将根据要求生成令牌,并使用
RemoveDuplicatesTokenFilter
删除重复项。这似乎是一个很好的解决方案。但这不是性能的瓶颈吗?我必须确定,即使有500000条参赛作品,性能也是有保证的。这是很棘手的一部分。我建议首先研究一个现有的过滤器实现,并以类似的方式实现。使用这种方法,我的问题是只考虑空闲时间。如果我想用状态“B”搜索未来3天,或者如果我想添加状态“C”。。员工的例子不是真正的问题,只是转移了我真正问题的概念。然后为记录类型添加一个标志。关键是,您需要在Solr中表示搜索域。您的搜索域是可用性,而不是个人。因此,如果您的概念转移是正确的,那么您需要在更高的粒度级别进行索引,以利用Solr。请参见Gilt的演示,了解关于粒度的几个方面: