Solr: установить повышение поля во время индекса с помощью DataImportHandler

Мне нужно установить повышение поля во время индекса с DataImportHandler. Я пытался сделать что-то вроде этого:

<entity name="places"  
    query="Select id, boost, text from table">
<field name="id"    column="id" />
<field name="boost"     column="boost"  />
<field name="1_text"  column="text"  boost="${boost}" />
</entity>

но это не работает. Это ошибка:

Caused by: java.lang.NumberFormatException: For input string: "${boost}"

Другой подход, который я сделал, это попытаться также использовать сценарий (преобразователь, но я не знаю синтаксис для установки повышения в поле):

<script><![CDATA[
                function addfield(row){
                    var fieldName = row.get('id') + "_text"
                    row.put(fieldName, row.get('text'));
                    return row;
                }
            ]]></script>

Пожалуйста, у вас есть какие-либо предложения?

1 ответ

К сожалению, в трансформаторе отсутствует поддержка динамического усиления для каждого поля, если только вы не укажете значение статического усиления в объекте. Есть способ установить ускорение документа, но это повлияет на все поля в документе, например:

 row.put('$docBoost', row.get('boost'));

Если это не то, что вам нужно, я бы порекомендовал взглянуть на увеличение времени запроса, поскольку вы уже сохранили поле "повышение".

Другие вопросы по тегам