java - 杜克快速重复数据删除 : java. lang.UnsupportedOperationException : Operation not yet supported?

标签 java lucene jdbc-odbc record-linkage duke

我正在尝试使用 Duke Fast Deduplication Engine在我工作的公司的数据库中搜索一些重复的记录。

我像这样从命令行运行它:

java -cp "C:\utils\duke-0.6\duke-0.6.jar;C:\utils\duke-0.6\lucene-core-3.6.1.jar" no.priv.garshol.duke.Duke --showmatches --verbose .\config.xml

但是我得到一个错误:

Exception in thread "main" java.lang.UnsupportedOperationException: Operation no
t yet supported
        at sun.jdbc.odbc.JdbcOdbcResultSet.isClosed(Unknown Source)
        at no.priv.garshol.duke.datasources.JDBCDataSource$JDBCIterator.close(JD
BCDataSource.java:115)
        at no.priv.garshol.duke.Processor.deduplicate(Processor.java:152)
        at no.priv.garshol.duke.Duke.main_(Duke.java:135)
        at no.priv.garshol.duke.Duke.main(Duke.java:38)

我的配置文件是这样的:

<duke>
   <schema>
         <threshold>0.82</threshold>
         <maybe-threshold>0.80</maybe-threshold>
         <path>test</path>

         <property type="id">
              <name>ID</name>
         </property>

         <property>
             <name>LNAME</name>
             <comparator>no.priv.garshol.duke.comparators.ExactComparator</comparator>
             <low>0.6</low>
             <high>0.8</high>
         </property>

         <property>
             <name>FNAME</name>
             <comparator>no.priv.garshol.duke.comparators.ExactComparator</comparator>
             <low>0.6</low>
             <high>0.8</high>
         </property>

         <property>
             <name>MNAME</name>
             <comparator>no.priv.garshol.duke.comparators.ExactComparator</comparator>
             <low>0.3</low>
             <high>0.5</high>
         </property>

         <property>
             <name>SSN</name>
             <comparator>no.priv.garshol.duke.comparators.ExactComparator</comparator>
             <low>0.0</low>
             <high>1.0</high>
         </property>

   </schema>
   <jdbc>
          <param name="driver-class" value="sun.jdbc.odbc.JdbcOdbcDriver" />
          <param name="connection-string" value="jdbc:odbc:VT_DeDupe" />
          <param name="user-name" value="aleer" />
          <param name="password" value="**" />
          <param name="query" value="select SocialSecurityNumber, LastName, FirstName, MiddleName, empssn from T_Employees" />

          <column name="SocialSecurityNumber" property="ID" />
          <column name="LastName" property="LNAME" />
          <column name="FirstName" property="FNAME" />
          <column name="MiddleName" property="MNAME" />
          <column name="empssn" property="SSN" />
   </jdbc>
</duke>

它并没有真正告诉我什么是不受支持的...我只是在尝试一下,还没有对配置进行任何严肃的设置。

最佳答案

正如 mbonaci 所说,问题是 JDBC 驱动程序的 isClosed() 方法没有实现。即使实现它并不比简单地写“return closed”更难。

我现在为这个问题添加了一个丑陋的解决方法。请执行“hg pull”并重试。

关于java - 杜克快速重复数据删除 : java. lang.UnsupportedOperationException : Operation not yet supported?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12845385/

相关文章:

java - 如何让UI在长时间运行时不被阻塞?

java - 使用嵌入式 Jetty 运行 JSF-2 页面?

java - 为SINGLE_TABLE继承模型自动生成person_id和student_id

mysql - 在 Lucene 中搜索确切的短语

java - 插入语句在java中不起作用

java - AudioClip 不起作用,但它应该

java - 在lucene中搜索时需要创建term shingles

elasticsearch - 为什么es获取idf值为0.30685282?

java - 如何使用java中的sql查询列出MS Access数据库文件中的所有表名称?

java - 数据源到底是什么?这有什么区别呢?