与日期相关的Solr数据搜索

时间:2019-12-13 15:33:37

标签: solr

我正在研究具有日期的Solr搜索条件,我在以下条件下使用了一个月。

int saveToBinary(Stack *g) { if (strcmp("continue",name) != 0){ strncat(name,".bin",5); FILE *fp; fp = fopen(name, "wb"); if(fp != NULL){ fwrite(g->boardValues ,1 ,sizeof(g->boardValues) ,fp); fwrite(g->playerSymbol ,1 ,sizeof(g->playerSymbol) ,fp); fwrite(&g->count ,1 ,sizeof(&g->count) ,fp); fwrite(&g->turnsCount ,1 ,sizeof(&g->turnsCount) ,fp); fclose(fp); exit(1); } else { return 2; } } else { return 1; } } int loadFromBinary(Stack *g){ FILE *fp; fp = fopen(saveName, "rb"); if (fp != NULL){ fread(g->boardValues ,sizeof(g->boardValues) ,1, fp); fread(g->playerSymbol ,sizeof(g->playerSymbol) ,1 ,fp); fread(&g->count ,1 ,sizeof(g->count) ,fp); fread(&g->turnsCount ,1 ,sizeof(g->turnsCount) ,fp); fclose(fp); return 1; } else { return 0; } } –这将返回大约481,000条记录。

但是,当我一次运行同一查询1周时:

FROM_DATE:[2016-07-01 TO *] AND TO_DATE:[* TO 2016-07-30] –我得到333行返回

FROM_DATE:[2016-07-01 TO *] AND TO_DATE:[* TO 2016-07-07] –我返回了9行

FROM_DATE:[2016-07-08 TO *] AND TO_DATE:[* TO 2016-07-14] –我返回了35行

FROM_DATE:[2016-07-15 TO *] AND TO_DATE:[* TO 2016-07-21] –我得到0行返回

我想念什么吗?

1 个答案:

答案 0 :(得分:0)

是的,您可能会错过时间。

您仅指定日期,但日期也可以包含时间。仅指定日期是隐式的,时间设置为00:00:00:000

所以FROM_DATE:[2016-07-01 TO *] AND TO_DATE:[* TO 2016-07-07]转换为

FROM_DATE:[2016-07-01 00:00:00 TO *] AND TO_DATE:[* TO 2016-07-07 00:00:00]

FROM_DATE:[2016-07-08 TO *] AND TO_DATE:[* TO 2016-07-14]相同的是翻译为

FROM_DATE:[2016-07-08 00:00:00 TO *] AND TO_DATE:[* TO 2016-07-14 :00:00:00]

结果,您排除了2016-07-07 00:00:012016-07-07 23:59:59当天的所有事件,并且一周结束后的所有其他日子都排除了该事件。

我希望您在指定完整的结束日期(包括TO_DATE上的时间)时得到不同的结果。