2017-04-12 5 views
1

나는 spark java에서 스크립트를 만들고 있습니다.Lucidworks 저장 solr 형식 알 수없는 필드

<schema name="MY_NAME" version="1.6"> 
    <field name="_version_" type="long" indexed="true" stored="true" /> 
    <field name="_root_" type="string" indexed="true" stored="false" /> 
    <field name="ignored_id" type="ignored" /> 
    <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
    <field name="age" type="int" indexed="true" stored="true" required="false" multiValued="false" /> 
    <field name="height" type="tlong" indexed="true" stored="true" required="false" multiValued="false" /> 
    <field name="name " type="string" indexed="true" stored="true" required="false" multiValued="false" /> 

    <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> 
    <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0" /> 
    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0" /> 
    <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0" /> 
    <fieldType name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField" /> 

    <uniqueKey>id</uniqueKey> 
</schema> 

내 DataFrame :

DataFrame df = sqlContext.sql("SELECT id, age, height, name FROM TABLE"); 
스파크 SOLR 도구 ( https://github.com/lucidworks/spark-solr)

내의 schema.xml - 나는 Lucidworks를 사용하여 SOLR 수집에 (A DataFrame에서) 데이터를 삽입 할 필요가

df.show() 제공 :

+--------------------+-----------+------+------+ 
|     id|  age|height|name | 
+--------------------+-----------+------+------+ 
|12345678912345678...|   10| 101|hello| 

하지만 시도 할 때 내 SOLR 수집에 삽입 :

Caused by: org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://MY_IP/solr/MY_COLLECTION_SHARD_REPLICA: ERROR :[doc=123456789123456789] unknown field '_indexed_at_tdt' 

분야 "_indexed_at_tdt는"어디에서 오는지 이해가 안 :

df.write() 
.format("solr") 
.option("collection", MY_COLLECTION) 
.option("zkhost", MY_ZKHOST) 
.save() 

나는 다음과 같은 오류가 있습니다.

삽입 할 4 개의 필드만으로 DataFrame이 올바르지 만 알 수없는 "_indexed_at_tdt"필드 때문에 Solr 컬렉션에 삽입 할 수 없습니다.

추가 정보 : 동일한 컬렉션에 삽입하여 작동하는 HBase Indexer가 있습니다.

도움을 주셔서 감사합니다.

답변

0

으로 볼 수 있듯이 here은 Lucidworks 코드로 필드가 자동으로 추가 된 것 같습니다. 당신이 _tdt *하기에 동적으로 만들 선호하는 경우,

<field name="_indexed_at_tdt" type="tdate" indexed="true" stored="true" required="false" multiValued="false" /> 

또는 :

당신은 스키마에 일치 한 필드를 추가해야하며 작동합니다.

+0

고마워요! 내가 필드를 추가하고 지금 작동 중입니다. – Drakax