0

data-config.xmlに次のものがあります。

<dataConfig>
  <dataSource dataSource info"/>
  <document>
   <entity name="item"
        pk="itemid"
        query=" SELECT itemid,start,end,item_categoryid
                FROM item"
        deltaImportQuery="  SELECT  * FROM item
                            WHERE   itemid = '${dataimporter.delta.item_id}'"
        deltaQuery="    SELECT  itemid
                        FROM    item
                        WHERE   last_mod > '${dataimporter.last_index_time}'
                            OR  create_time> '${dataimporter.last_index_time}'">
        <field column="itemid" name="item_id"/>
        <field column="start" name="start"/>
        <field column="end" name="end"/>
        <entity name="item_category" 
                pk="item_categoryid"
                query=" SELECT  item_categoryid,desc,title 
                        FROM    item_category
                        WHERE   mbpostingid='${item.item_categoryid}'"
                deltaImportQuery="  SELECT  * FROM item_category
                                    WHERE   item_categoryid= '${dataimporter.delta.id}'"
                deltaQuery="SELECT  item_categoryid
                            FROM    item_category
                            WHERE   last_mod > '${dataimporter.last_index_time}'
                                OR  create_time > '${dataimporter.last_index_time}'">
           <field column="item_categoryid" name="id"/>
           <field column="desc" name="desc"/>
           <field column="title" name="title"/>
        </entity>
    </entity>
  </document>
</dataConfig>

delta-importを実行するときはいつでも

http://localhost:8983/solr/dataimport?command=delta-import

Solrは、データベースで更新された行を更新していますが、追加された行のインデックスを追加しておらず、削除された行のインデックスを削除していません。

Solrは、データベースに新しく追加された行を認識(フェッチ)しますが、それらを「処理」しません。

<str name="Total Documents Processed">0</str>

dataConfigに何か問題がありますか?何か私にできることはありますか?

ありがとう、カレブ

4

3 に答える 3

1
query="SELECT itemid,start,end,item_categoryid
            FROM item"
deltaImportQuery="SELECT  * FROM item
                  WHERE   itemid = '${dataimporter.delta.item_id}'"
                                                         ^-----^

変数で正確な列名を使用する必要があります。列名はitemid(アンダースコアなし)のように見えるので、これを試してみてください:

query="SELECT itemid,start,end,item_categoryid
            FROM item"
deltaImportQuery="SELECT  * FROM item
                  WHERE   itemid = '${dataimporter.delta.itemid}'"
                                                         ^----^
于 2013-03-04T22:48:29.127 に答える