2014-09-02 2 views
0

У меня возникли проблемы с deltaquery, где он не работает автоматически. Ниже данных конфигурации У меня естьDeltaImport не происходит по умолчанию

 <dataConfig> 
     <dataSource type="JdbcDataSource" 
     driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
     url="jdbc:sqlserver://WTL-sql-1.com;databaseName=eng_metrics" 
     user="metrics" 
     password="metrics"/> 

     <document name="content"> 
      <entity name="id" 
    query="select defect_id,headline,description,modify_date,issue_type,category,product,state FROM defects WHERE state not like 'Duplicate'" 
    deltaImportQuery="select defect_id,headline,description,modify_date,issue_type,category,product,state FROM defects WHERE defect_id = '${dataimporter.delta.defect_id}' and state not like 'Duplicate'" 
    deltaQuery="select defect_id FROM defects WHERE modify_date > '${dataimporter.last_index_time}'"> 

       <field column="defect_id" name="defect_id" /> 
       <field column="headline" name="headline" /> 
       <field column="description" name="description" /> 
       <field column="modify_date" name="modify_date" />    
       <field column="issue_type" name="issue_type" /> 
       <field column="category" name="category" /> 
       <field column="product" name="product" /> 
       <field column="state" name="state" /> 
      </entity> 
     </document> 
    </dataConfig> 

Но что я вижу, что независимо от изменения modify_date в БД, я не вижу обновление происходит, если я не стараюсь делать импорт дельта в явном виде.

Может кто-нибудь дать мне некоторые мысли о том, нужно ли мне изменить какую-либо конфигурацию или какой-либо запрос, чтобы это произошло автоматически?

ответ

0

Фактически, DataImportHandler не будет делать это автоматически. Вы должны вызвать его по URL-адресу запроса дельта-импорта.

Вы можете что-то вроде этого:

http://wiki.apache.org/solr/DataImportHandler#Scheduling

или вы можете реализовать подобный один за другим самостоятельно, вы.

+0

Я добавил ответ на это выше .. как-то я не могу опубликовать его здесь .. Извините :( – user3917144

0

Но я имею это данные-конфигурацию, который отлично работает в некоторых случаях

<dataConfig> 
     <dataSource type="JdbcDataSource" 
     driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
     url="jdbc:sqlserver://127.0.0.1\SQLEXPRESS;databaseName=sustaining_trends" 
     user="sa" 
     password="metrics"/> 

     <document name="content"> 
      <entity name="id" 
    query="select id,createtime,lastmodified,modifiedby,title,keywords,general,symptom,diagnosis,resolution FROM trends" 
    deltaImportQuery="select id,createtime,lastmodified,modifiedby,title,keywords,general,symptom,diagnosis,resolution FROM trends WHERE id = ${dataimporter.delta.id}" 
    deltaQuery="select id FROM trends WHERE lastmodified > '${dataimporter.last_index_time}' or createtime > '${dataimporter.last_index_time}'"> 

       <field column="id" name="trendid" /> 
       <field column="lastmodified" name="lastmodified" /> 
       <field column="modifiedby" name="modifiedby" /> 
       <field column="title" name="title" /> 
       <field column="keywords" name="keywords" /> 
       <field column="general" name="general" /> 
       <field column="symptom" name="symptom" /> 
       <field column="diagnosis" name="diagnosis" /> 
       <field column="resolution" name="resolution" /> 
      </entity> 
     </document> 
    </dataConfig> 

Вот если элемент немедленно изменен, который обновляется без какого-либо вмешательства, но если создаются новые данные, которые не получают обновляется до тех пор, пока я не сделаю ручной дельта-импорт, иначе какая-либо запись будет изменена.

Как это автоматически срабатывает при модификации и не работает автоматически для создания?

Смежные вопросы