Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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
Solr日期变量解析程序无法与MySql一起使用_Mysql_Oracle_Solr_Dataimporthandler - Fatal编程技术网

Solr日期变量解析程序无法与MySql一起使用

Solr日期变量解析程序无法与MySql一起使用,mysql,oracle,solr,dataimporthandler,Mysql,Oracle,Solr,Dataimporthandler,我使用了Solr 3.3版本作为数据导入处理程序(DIH)与Oracle一起使用。 这对我来说很好 现在我正在用Mysql进行同样的尝试。 随着数据库的更改,我已经更改了dataconfig.xml中用于MySql的查询 该查询具有在http中通过url传递的变量。 同样的事情在带有变量解析器的Oracle中也能正常工作,但在MySql中则不行 查询是: SELECT DISTINCT doc.document_id , doc.first_version_id, doc.acl_id,

我使用了Solr 3.3版本作为数据导入处理程序(DIH)与Oracle一起使用。 这对我来说很好

现在我正在用Mysql进行同样的尝试。 随着数据库的更改,我已经更改了dataconfig.xml中用于MySql的查询

该查询具有在http中通过url传递的变量。 同样的事情在带有变量解析器的Oracle中也能正常工作,但在MySql中则不行

查询是:

SELECT DISTINCT doc.document_id ,
  doc.first_version_id,
  doc.acl_id,                    
  fol.folder_id                 
FROM ds_document_c doc,
  ds_folder fol
WHERE doc.cabinet_id = ${dataimporter.request.cabinetId}
  AND fol.folder_id = doc.document_folder_id
  AND doc.index_state_modification_date >= to_date('${dataimporter.request.lastIndexDate}', 'DD/MM/YYYY HH24:MI:SS')
网址是:

localhost:8983/solr/dataimport?command=full-import&clean=true&commit=true&cabinetId=17083360&lastIndexDate='24/05/2015 00:00:00'
Solr正在构建查询,如下所示:

SELECT DISTINCT doc.document_id ,
  doc.first_version_id,
  doc.acl_id,                    
  fol.folder_id                 
FROM ds_document_c doc,
  ds_folder fol
WHERE doc.cabinet_id = 24
AND fol.folder_id = doc.document_folder_id
AND doc.index_state_modification_date >= to_date('[?, '28/05/2015 11:13:50']', 'DD/MM/YYYY HH24:MI:SS')
我无法理解为什么在这种情况下不能正确地重新选择日期变量

由于截至日期('[?,'28/05/2015 11:13:50'])的
语法不正确,我得到了MySql语法错误

我得到以下错误

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[?, '28/05/2015 11:13:50'], 'DD/MM/YYYY HH24:MI:SS')))' at line 1
有人知道问题出在哪里吗?为什么变量解析器不能按预期工作


注意:to_date是我们在MySql中编写的函数。

我检查了solr的源代码,并试图解决我的问题

我已经修好了,它对我有用

在date的情况下,变量resolve以某种方式生成一个数组,等等 它附加了

'[?, '28/05/2015 11:13:50']'.
在方法fillTokens(VariableResolver-resolver)中的TemplateString.java中 我添加了一个代码,删除了添加到日期的额外部分

if (i < s.length) {
   if(s[i].startsWith("[")){
      String temp = s[i].replace("[?,", "");
      temp = temp.replace("]", "");
      sb.append(temp);
   }else{
      sb.append(s[i]);
   }
}
if(i
通过此更改,variable resolver将日期追加为“28/05/2015 11:13:50”,并删除了我的MySql语法错误

(注意:我没有太多时间来分析日期变量解析为数组的原因。我已经做了临时修复,解决了我的问题。)