поле datetime в схеме Solr - PullRequest
       4

поле datetime в схеме Solr

3 голосов
/ 04 августа 2011

Я использую Solr для поиска в моей базе данных, и мне нужно получить поле с типом данных (datetime) из базы данных mysql, поэтому я установил запрос на выборку, чтобы получить это поле в dataconfig.xml, и добавил полевведите имя этого поля в schema.xml следующим образом:

<field name="parsed_at" type="datetime" indexed="true" stored="true" />

, но solr не внес никаких указателей после этих изменений.я попытался

select date(parsed_at) as parsed_at ...

и указать тип в качестве даты в schema.xml, но это не сработало по неизвестной причине
поддерживает ли solr какой-либо тип данных, совместимый с datatime или timestamp в mysql?

Ответы [ 2 ]

6 голосов
/ 04 августа 2011

Solr совместим с типичными форматами даты MySql в таблице MySQL, такими как Ymd (и т. Д.) Если столбец parsed_at в MySQL относится к типу datetime, поэтому вам не нужно вносить какие-либо изменения во время выбора, еслиимя поля (solr) = имя пользователя (MySQL).

Так что попробуйте select parsed_at from ....Solr обработает дату

<field name="parsed_at" type="datetime" indexed="true" stored="true" />

. Убедитесь, что fieldType (type =) datetime в файле scher.xml Solr завершается.Если это так, пожалуйста, опубликуйте конфигурацию здесь.Если нет, проверьте, выходит ли следующая строка в schema.xml, что по умолчанию:

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

Тип поля tdate может обрабатывать форматы даты.Если у вас есть это определение поля в вашем schema.xml, ваше поле parsed_at может использовать этот тип:

<field name="parsed_at" type="tdate" indexed="true" stored="true" />
1 голос
/ 04 августа 2011

Вы используете DataImportHandler? В этом случае вам нужно сообщить SOLR, как хранится дата. Вы делаете это, используя DateFormatTransformer трансформатор:

<dataConfig>
    <dataSource
      type='JdbcDataSource' 
      driver='com.mysql.jdbc.Driver' 
      url='jdbc:mysql://localhost/DATABASE?zeroDateTimeBehavior=convertToNull'
      batchSize='-1' 
      user='USER' 
      password='PASS'/>
    <document name='objects'>
        <entity name='object' pk='id' transformer='DateFormatTransformer' query='BLA' >
    <field column='id' />
            <field column='created' dateTimeFormat='yyyy-MM-dd HH:mm:ss' />
        </entity>
    </document>
</dataConfig>

Обратите внимание, что я застрял ?zeroDateTimeBehavior=convertToNull за URL. Это предотвращает ошибки с пустыми датами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...