我正在研究具有日期的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行返回
我想念什么吗?
答案 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:01
至2016-07-07 23:59:59
当天的所有事件,并且一周结束后的所有其他日子都排除了该事件。
我希望您在指定完整的结束日期(包括TO_DATE
上的时间)时得到不同的结果。