Как создать пользовательские Трансформеры для Solr DataImportHandler? - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь индексировать данные после чтения их из базы данных с помощью обработчика импорта данных, но мне нужно обработать данные перед их индексацией, чтобы решить ... для этого я пытаюсь создать собственные преобразователи, но я не могу это сделать..... Я написал код Java, как указано на http://wiki.apache.org/solr/DIHCustomTransformer..., но они не дали инструкции о том, как его использовать .... PS> Я совершенно новичок в Java

яЯ не могу загрузить трансформатор даже после выполнения всех трех способов, упомянутых здесь http://wiki.apache.org/solr/SolrPlugins#How_to_Load_Plugins...

в моем data-config.xml я добавил объект:

<entity name="cod" query=".. " transformer="foo.check">
</entity>

Java-код:

package foo;
import java.util.*;
public class check    {
...
...
}

Затем я создал файл jar с помощью команды "jar cvf foo.jar check.class" и поместил foo.jar в example / solr / lib после создания каталога lib внутри solr ..... Я также попробовал другие два метода ...
т.е. указать путь к lib внутри solrconfig.xml и добавить foo.jar внутри solr.war

Ответы [ 2 ]

2 голосов
/ 28 июня 2012

Это может быть связано с тем, как вы создаете свой JAR-файл. Распакуйте файл jar, и вы должны найти папку с именем «foo», а внутри этой папки должен быть check.class, (foo / check.class). У меня такое чувство, что вы просто помещаете в него файл check.class, а затем ссылаетесь на него с помощью "foo.check". Другой способ проверить это - заменить трансформатор на «check», поэтому «transformer =« check ». Иерархия папок в jar-файле и полное имя класса должны точно совпадать.

2 голосов
/ 23 февраля 2012

Если вы имеете в виду, как включить класс для Solr, чтобы использовать его, отметьте http://wiki.apache.org/solr/SolrPlugins#How_to_Load_Plugins

Вы можете упаковать класс в виде jar-файла и добавить его в папку lib вашего ядра solr,так что Solr может загрузить созданные вами собственные классы плагинов.

Для справки по классу в конфигурации -

Использование определено в URL .

Вам необходимо указать преобразователь с полным именем пакета в вашем data-config.xml следующим образом:

<entity name="artist" query="..." transformer="foo.TrimTransformer">
        <field column="artistName" />
</entity>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...