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'));
Если это не то, что вам нужно, я бы порекомендовал взглянуть на увеличение времени запроса, поскольку вы уже сохранили поле "повышение".