Lucidworks сохраняет формат solr Неизвестное поле

Я делаю скрипт в искре java. Мне нужно вставить данные (из DataFrame) в коллекцию Solr с помощью инструментов Lucidworks - spark-solr (https://github.com/lucidworks/spark-solr)

Моя схема.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 полями, которые я хочу вставить, но я все еще не могу вставить в свою коллекцию Solr из-за этого неизвестного поля «_indexed_at_tdt».

Дополнительная информация: у меня есть индексатор HBase, который вставляется в ту же коллекцию и работает.

Заранее спасибо за вашу помощь !


person Drakax    schedule 12.04.2017    source источник


Ответы (1)


как вы можете видеть здесь кажется, что поле автоматически добавляется кодом Lucidworks.

Вам нужно просто добавить соответствующее поле в схему, и оно заработает:

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

Или, если вы предпочитаете, сделайте его динамическим для *_tdt.

person Persimmonium    schedule 12.04.2017