2015-02-03 2 views
1

이 테이블 내부 6 노드 클러스터, 신선한, 단 1 개 레코드 DataStax 엔터프라이즈 서버 4.6.0을 실행 만들 수 없습니다 :SOLR 코어, 키 형식이 일치하지

CREATE TABLE tweets.tweets (uid bigint, tweet_id bigint, 
tweet text,created timestamp,PRIMARY KEY (uid , created)) 
WITH CLUSTERING ORDER BY (created DESC); 

의 schema.xml은 다음과 같습니다

<?xml version="1.0" encoding="UTF-8" ?>  
<schema name="tweets" version="1.1"> 
<types> 
    <fieldType name="bigint" class="solr.TrieLongField"/> 
    <fieldType name="timestamp" class="solr.TrieDateField"/> 
    <fieldType name="text" class="solr.TextField"> 
    <analyzer><tokenizer class="solr.StandardTokenizerFactory"/></analyzer> 
    </fieldType> 
</types> 

<fields> 
    <field name="uid" type="bigint" indexed="true" stored="true"/> 
    <field name="tweet_id" type="bigint" indexed="true" stored="true"/> 
    <field name="tweet" type="text" indexed="true" stored="false"/> 
    <field name="created" type="timestamp" indexed="true" stored="false"/> 
</fields> 
<defaultSearchField>tweet</defaultSearchField> 
<uniqueKey>(uid,tweet_id)</uniqueKey> 

</schema> 
내가 실행 할 때마다 :

curl "http://localhost:8983/solr/admin/cores?action=CREATE&name=tweets.tweets" 

내가 얻을 :

... java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.IllegalStateException: Mismatch between Solr key field tweet_id with type bigint{class=org.apache.solr.schema.TrieLongField,analyzer=org.apache.solr.schema.FieldType$DefaultAnalyzer,args={class=solr.TrieLongField}} and Cassandra key alias created with type timestamp 
     at com.datastax.bdp.search.solr.core.Cql3CassandraSolrSchemaUpdater.validateUniqueKeyStructure(Cql3CassandraSolrSchemaUpdater.java:234) 
     at com.datastax.bdp.search.solr.core.Cql3CassandraSolrSchemaUpdater.update(Cql3CassandraSolrSchemaUpdater.java:46) 
     at com.datastax.bdp.search.solr.core.CassandraCoreContainer.create(CassandraCoreContainer.java:275) 
     ... 31 more 
</str><int name="code">500</int></lst><str name="params">name=tweets.tweets&amp;action=CREATE</str> 

매우 혼란스러운 오류 ... "bigint 유형의 Solr 키 필드 tweet_id"가 "timestamp 유형으로 생성 된 Cassandra 키 별칭"과 어떤 관련이 있습니까?

답변

2

기본 키는 고유 키와 일치해야합니다. 왜 DSE가 스키마 xml을 자동으로 생성하도록하지 않습니까?

+1

나는 그것이 내 부분에 뭔가 어리 석다는 것을 알았다. - 고마워! Btw, 자동 생성 시도 : "http : // localhost : 8983/solr/admin/cores? action = CREATE & name = tweets.tweets & generateResources = true"오류가 발생했습니다. org.apache.cassandra.db.marshal.ReversedType을 입력하십시오. (org.apache.cassandra.db.marshal.TimestampType)은 자동 Solr 스키마 생성에서는 지원되지 않습니다. – Pavel

+0

아,이 문제를 확인하겠습니다. 알려진 문제 일 수 있습니다. – phact

+2

예, 알려진 문제이며 DSE 4.6.1에서 수정 될 예정입니다. – sbtourist

관련 문제