【问题标题】:Lucidworks save solr format Unknown fieldLucidworks 保存 solr 格式 未知字段
【发布时间】:2017-04-12 13:54:43
【问题描述】:

我正在 Spark Java 中制作脚本。 我需要使用 Lucidworks - spark-solr 工具 (https://github.com/lucidworks/spark-solr) 将数据(来自 DataFrame)插入到 Solr 集合中

我的 schema.xml:

<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 df = sqlContext.sql("SELECT id, age, height, name FROM TABLE");

df.show() 给出:

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

但是当我尝试插入我的 solr 集合时:

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

我有以下错误:

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”字段的来源。

DataFrame 似乎正确,只有我要插入的 4 个字段,但由于这个未知字段“_indexed_at_tdt”,我仍然无法在我的 Solr 集合中插入。

更多信息: 我有一个 HBase 索引器,它插入到同一个集合中并且正在工作。

提前感谢您的帮助!

【问题讨论】:

    标签: java hadoop apache-spark solr lucidworks


    【解决方案1】:

    如您所见here 似乎该字段是由 Lucidworks 代码自动添加的。

    您只需将对应字段添加到架构中即可:

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

    或者,如果您更愿意为 *_tdt 设置动态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      相关资源
      最近更新 更多