Hello,
I've been trying to get Solr to run with DataImportHandler. I've found various issues and fixed them, but I'm still getting an error message, and I can't find anything else to fix. Could someone please take a look at my setup to see if I've done something wrong? When I go to the Solr admin page, I get the following error:

_SolrCore 'collection1' is not available due to init failure: RequestHandler init failure,trace=org.apache.solr.common.SolrException: SolrCore 'collection1' is not available due to init failure: RequestHandler init failure at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:1212) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:248) at
_
There's more to the error, but it looks like it doesn't contain any useful information, so please let me know if I should show more.

My core instance is in /etc/solr/collection1/ and I have the JDBC driver in /etc/solr/lib/. The DataImportHandler jar files are in /opt/solr/contrib/dataimporthandler/lib and /opt/solr/dist/. Here are the RequestHandler and lib sections of my solrconfig.xml file, which is in /etc/solr/collection1/conf/.

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>

  <lib dir="/opt/solr/contrib/dataimporthandler/lib" regex=".*\.jar" />
<lib dir="/opt/solr/dist/" regex="apache-solr-dataimporthandler-.*\.jar" />
  <lib dir="/etc/solr/lib" regex=".*\.jar" />

I've tried writing the file paths as if they were from the /etc/solr/ directory, and also as if they were from the /etc/solr/collection1/conf/ directory, and neither worked so I just started from the top.

----------------------------------------------------------------------------------

Here is my data-config.xml (also in the /etc/solr/collection1/conf/ directory). The keyword, catCatName, and brandCatName columns

<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/XXXXX" user="XXXXX" password="XXXXX"/>
    <document name="products">
<entity name="product" query="select id, brand, prodName, description, buyURL, imgURL, currency, price, salePrice, fanNum, lastUpdate from product_CJ" pk="id" deltaImportQuery="select id, brand, prodName, description, buyURL, imgURL, currency, price, salePrice, fanNum, lastUpdate from product_CJ where id='${dih.delta.id}'" deltaQuery="select id from product_CJ where lastUpdate &gt; '${dih.last_index_time}'">
            <field column="id" name="id" />
            <field column="brand" name="brand" />
            <field column="prodName" name="prodName" />
            <field column="description" name="description" />
            <field column="buyURL" name="buyURL" />
            <field column="imgURL" name="imgURL" />
            <field column="currency" name="currency" />
            <field column="price" name="price" />
            <field column="salePrice" name="salePrice" />
            <field column="fanNum" name="fanNum" />
            <field column="lastUpdate" name="lastUpdate" />

<entity name="brandInfo" query="select feedID, brandName, kickbackBase, kickbackMax, kickbackFlat, kickbackType, feed from brands_inactive where feedID='${product.brand}'">
                <field name="feedID" column="feedID" />
                <field name="brandName" column="brandName" />
                <field name="kickbackBase" column="kickbackBase" />
                <field name="kickbackMax" column="kickbackMax" />
                <field name="kickbackFlat" column="kickbackFlat" />
                <field name="kickbackType" column="kickbackType" />
                <field name="feed" column="feed" />
            </entity>

<entity name="keywords" query="select keyword from productKeywords where prodID='${product.id}'">
                <field column="keyword" name="keyword" />
            </entity>

<entity name="catIDs" query="select catID from prod_cat where prodID='${product.id}'"> <entity name="catMaps" query="select defCatID from cat_cat_maps where catID='${catIDs.catID}'"> <entity name="catCatNames" query="select catName AS catCatName from definedCategories where defCatID='${catMaps.defCatID}'">
                  <field column="catCatName" name="catCatName" />
                </entity>
              </entity>
            </entity>

<entity name="brandMaps" query="select defCatID from brand_cat_maps where brandID='${product.brand}'"> <entity name="brandCatNames" query="select catName AS brandCatName from definedCategories where defCatID='${brandMaps.defCatID}'">
                <field column="brandCatName" name="brandCatName" />
              </entity>
            </entity>
        </entity>
    </document>
    </dataConfig>

----------------------------------------------------------------------------------

And here is my schema.xml

 <fields>
<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" /> <field name="prodName" type="text_general" indexed="true" stored="true" required="true"/> <field name="brand" type="int" indexed="false" stored="true" required="true"/> <field name="brandName" type="text_general" indexed="true" stored="true" required="true"/>
   <field name="currency" type="currency" indexed="true" stored="true" />
   <field name="price" type="float" indexed="false" stored="true"/>
   <field name="salePrice"  type="float" indexed="false" stored="true"/>
   <field name="fanNum" type="int" indexed="false" stored="true" />
<field name="feedID" type="int" indexed="false" stored="false" required="true" />
   <field name="kickbackBase" type="float" indexed="false" stored="true" />
   <field name="kickbackMax" type="float" indexed="false" stored="true" />
   <field name="kickbackFlat" type="float" indexed="false" stored="true" />
<field name="kickbackType" type="string" indexed="false" stored="true" />
   <field name="feed" type="string" indexed="false" stored="true" />
<field name="keyword" type="text_general" indexed="true" stored="true" multiValued="true"/> <field name="catCatName" type="text_general" indexed="true" stored="true" multiValued="true"/> <field name="brandCatName" type="text_general" indexed="true" stored="true" multiValued="true"/> <field name="buyURL" type="text_general" indexed="false" stored="true" required="true"/>
   <field name="imgURL" type="text_general" indexed="false" stored="true"/>
   <field name="lastUpdate" type="string" indexed="false" stored="true"/>
<field name="description" type="text_general" indexed="false" stored="true"/> <field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/> <field name="text_rev" type="text_general_rev" indexed="true" stored="false" multiValued="true"/> <field name="brand_exact" type="text_general" indexed="true" stored="false"/>
</fields>

<uniqueKey>id</uniqueKey>

   <copyField source="catCatName" dest="text"/>
   <copyField source="brandCatName" dest="text"/>
   <copyField source="prodName" dest="text"/>
   <copyField source="brandName" dest="brand_exact"/>
   <copyField source="description" dest="text"/>
   <copyField source="keyword" dest="text"/>

Does anyone see anything that I'm doing wrong?
Brian
_
_

Reply via email to