尝试创建CQL3支持的SOLR Core时出错

时间:2014-03-17 17:03:57

标签: solr cassandra cql3 datastax-enterprise

我们目前正在尝试在DSE 3.2.5上创建CQL3支持的SOLR核心。创建核心的curl命令失败,出现模式不一致错误(等待30秒后)。在尝试多次重新加载核心之后,创建了索引。我们尝试添加一些数据并重新编制索引,但在两台计算机上仍然出现null:org.apache.solr.common.SolrException错误。一台机器正常工作。

编辑:字段名称错误是由于插入了具有错误字段名称的地图。现在一个节点可以工作,但另外两个节点仍然出现以下错误。

我们在两个节点上收到此错误:

 INFO [http-8983-7] 2014-03-17 16:02:01,715 SolrDispatchFilter.java (line 618) [admin] webapp=null path=/admin/cores params={deleteAll=true&action=RELOAD&reindex=true&_=1395072121091&core=linkcurrent_search.content_items&wt=json} status=500 QTime=543
ERROR [http-8983-7] 2014-03-17 16:02:01,715 SolrException.java (line 136) null:org.apache.solr.common.SolrException
    at com.datastax.bdp.search.solr.core.SolrCoreResourceManager.reloadCore(SolrCoreResourceManager.java:439)
    at com.datastax.bdp.search.solr.handler.admin.CassandraCoreAdminHandler.handleReloadAction(CassandraCoreAdminHandler.java:144)
    at org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:170)
    at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
    at org.apache.solr.servlet.SolrDispatchFilter.handleAdminRequest(SolrDispatchFilter.java:615)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:206)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)
    at com.datastax.bdp.search.solr.servlet.CassandraDispatchFilter.doFilter(CassandraDispatchFilter.java:90)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.datastax.bdp.cassandra.audit.SolrHttpAuditLogFilter.doFilter(SolrHttpAuditLogFilter.java:194)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.datastax.bdp.search.solr.auth.CassandraAuthorizationFilter.doFilter(CassandraAuthorizationFilter.java:92)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.datastax.bdp.search.solr.auth.DseAuthenticationFilter.doFilter(DseAuthenticationFilter.java:102)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:724)

ERROR [http-8983-7] 2014-03-17 16:02:01,716 SolrDispatchFilter.java (line 642) Error request exception: null
org.apache.solr.common.SolrException
    at com.datastax.bdp.search.solr.core.SolrCoreResourceManager.reloadCore(SolrCoreResourceManager.java:439)
    at com.datastax.bdp.search.solr.handler.admin.CassandraCoreAdminHandler.handleReloadAction(CassandraCoreAdminHandler.java:144)
    at org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:170)
    at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
    at org.apache.solr.servlet.SolrDispatchFilter.handleAdminRequest(SolrDispatchFilter.java:615)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:206)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)
    at com.datastax.bdp.search.solr.servlet.CassandraDispatchFilter.doFilter(CassandraDispatchFilter.java:90)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.datastax.bdp.cassandra.audit.SolrHttpAuditLogFilter.doFilter(SolrHttpAuditLogFilter.java:194)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.datastax.bdp.search.solr.auth.CassandraAuthorizationFilter.doFilter(CassandraAuthorizationFilter.java:92)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.datastax.bdp.search.solr.auth.DseAuthenticationFilter.doFilter(DseAuthenticationFilter.java:102)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:724)

这是我们的schema.xml:

<schema name="content" version="1.5">
  <types>

    <fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true" positionIncrementGap="0"/>
    <fieldType name="string" class="solr.StrField"/>
    <fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>

    <fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.LowerCaseTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory" />
      </analyzer>
    </fieldType>

    <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        -->
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>
  </types>

  <fields>
    <!-- Our standard fields for searching -->
    <field name="content_id" type="string" indexed="true" stored="true" required="true" />
    <field name="account_id" type="string" indexed="true" stored="true" required="true" />
    <field name="url"  type="string" indexed="true"  stored="true" required="true" />
    <field name="published_at"  type="tdate" indexed="true"  stored="true" />
    <field name="title"  type="text_general" indexed="true"  stored="true" />

    <!-- Multi-valued fields -->
    <field name="authors"  type="lowercase" multiValued="true" stored="true" indexed="true" omitNorms="true" />
    <field name="tags"  type="lowercase" multiValued="true" stored="true" indexed="true" omitNorms="true" />
    <field name="channels"  type="lowercase" multiValued="true" stored="true" indexed="true" omitNorms="true" />
    <field name="boards"  type="lowercase" multiValued="true" stored="true" indexed="true" omitNorms="true" />

    <!-- Dynamic fields -->
    <dynamicField name="shared_on_*" type="string" indexed="true" stored="true" />
    <dynamicField name="score_value_*" type="tfloat" indexed="true" stored="true" />
    <dynamicField name="score_calculated_*" type="tdate" indexed="true" stored="true" />
    <dynamicField name="score_pspv_*" type="tfloat" indexed="true" stored="true" />
    <dynamicField name="score_velocity_*" type="tfloat" indexed="true" stored="true" />
  </fields>

  <defaultSearchField>title</defaultSearchField>
  <solrQueryParser defaultOperator="AND" />
  <uniqueKey>content_id</uniqueKey>
</schema>

和我们的表定义:

CREATE KEYSPACE linkcurrent_search
    WITH REPLICATION = { 'class': 'NetworkTopologyStrategy', 'Solr': 3, 'Cassandra': 3 }; -- production

USE linkcurrent_search;

CREATE TABLE content_items (
  content_id TEXT,        -- The content_id
  account_id TEXT,        -- The account_id
  url TEXT,               -- The URL of the article
  published_at TIMESTAMP, -- When the article was published
  title TEXT,             -- The title of the article

  -- Our multi-valued fields
  authors SET<TEXT>,      -- Set of authors
  channels SET<TEXT>,     -- Set of channels
  tags SET<TEXT>,         -- Set of tags
  boards SET<TEXT>,       -- Set of associated boards

  -- Our dynammic fields
  shared_on_ MAP<TEXT, TEXT>, -- Social networks that item has been shared on
  score_value_ MAP<TEXT, FLOAT>, -- The current score value
  score_calculated_ MAP<TEXT, TIMESTAMP>, -- The last time the score was calculated
  score_pspv_ MAP<TEXT, FLOAT>, -- The predicted social pageviews from the score calculation
  score_velocity_ MAP<TEXT, FLOAT>, -- The current velocity of the score

  PRIMARY KEY(content_id)
) WITH comment = 'Content items '
   AND read_repair_chance=0.001000;

这是我们输入的数据:

cqlsh:linkcurrent_search> select * from content_items;

@ Row 1
-------------------+-----------------------------------------------------------------------------------------------
 content_id        | 4893332cd2caa0a1424702f1e1c55cba
 account_id        | 4893332cd2caa0a1424702f1e1c55cbd
 authors           | {'Test McTest'}
 boards            | {'530e5a6cb91c275929002dbf'}
 channels          | {'us.test'}
 published_at      | 2014-03-14 11:03:00+0000
 score_calculated_ | {'realtime': '2014-03-17 12:34:23+0000'}
 score_pspv_       | {'realtime': 124}
 score_value_      | {'realtime': 42}
 score_velocity_   | {'realtime': 0.42}
 shared_on_        | {'facebook': '9138739jdh', 'twitter': '1243243214'}
 solr_query        | null
 tags              | null
 title             | Test title
 url               | http://www.test.com/2014/03/14/test.html

1 个答案:

答案 0 :(得分:1)

问题节点上的退回DSE似乎解决了这个问题。